天天看點

Android圖檔全屏延時跳轉

最近在做miracast投屏,需要在投屏顯示前,插播幾秒的圖檔廣告。并且可以通過點選完成提前跳轉。

核心點主要在延時跳轉和點選完成提前跳轉。核心代碼如下:

class MainActivity : AppCompatActivity() {


    //跳過倒計時提示5秒
    private var recLen = 5

    private var handler: Handler = Handler()

    private var runnable: Runnable? = null


    internal var timer = Timer()

    internal var task: TimerTask? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        requestWindowFeature(Window.FEATURE_NO_TITLE)
        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
        setContentView(R.layout.activity_main)
        init()
        timer.schedule(task, 0 , 1000)
        handler.postDelayed(runnable, 5000)
    }

    private fun init() {

        tv_skip.setOnClickListener{
            if (runnable != null) {
                handler!!.removeCallbacks(runnable)
            }
            jump_activity()
        }

        runnable = object : Runnable {
            override fun run() {
                // TODO Auto-generated method stub
                jump_activity()
            }
        }

        task = object : TimerTask() {
            override fun run() {
                runOnUiThread {
                    tv_skip.setText("跳過$recLen")
                    if (recLen < 1) {
                        timer.cancel()
                        tv_skip.setVisibility(View.GONE)//倒計時到0隐藏字型
                    }
                    recLen--
                }
            }
        }
    }

    private fun jump_activity() {
        val intentMainActivity = Intent(this, ContentActivity::class.java)
        this.startActivity(intentMainActivity)
    }

}
           

效果圖如下:

Android圖檔全屏延時跳轉

完成了個例子上傳至github,位址如下:https://github.com/cuibin1991/AdvertiseTest