APP 廣告UI

蝴蝶xioc發表於2017-06-05

APP 首頁常為一個廣告推送頁面,在執行若干時間後自動跳轉下一頁面,在此過程中,使用者可以點選跳過以提前結束當前頁面,跳轉到相應的介面

頁面效果類似:
這裡寫圖片描述
主要功能集中在右上角的按鈕,包含計時,點選跳轉

以下為實現:
首先需要一個計時器,Android已封裝好CountDownTimer的類能完成功能,此處建立一個MyCountDownTimer繼承此類,需要實現方法:
1. public void onTick(long ) //間隔多久執行一次
2. public void onFinish() //計時完成事件

需要一個顯示時間資訊的TextView skip_time

protected class MyCountdownTimer extends CountDownTimer{

        /**
         * @param millisInFuture    計時總時間
         * @param countDownInterval 間隔時間
         */
        public MyCountdownTimer(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
            skip_time.setText("跳過 ("+millisInFuture/1000+")");
        }

        @Override
        public void onTick(long millisUntilFinished) {
            //顯示更改後的時鐘資訊
            skip_time.setText("跳過 ("+millisUntilFinished/1000+")");
        }

        @Override
        public void onFinish() {
            //計時結束後再這裡跳轉
            userLogin();
        }
    }

接下來需要對使用者點選跳過進行監聽,如果使用者點選了監聽,直接取消計時器,跳轉相應頁面,釋放計時器資源。


private MyCountdownTimer countdownTimer;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        init();
    }

    private void init() {
        skip = (LinearLayout) findViewById(R.id.main_skip);
        skip.setOnClickListener(this);
        skip_time = (TextView)findViewById(R.id.main_clock);
        skip_time.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                userLogin();
                //關閉計時器
                countdownTimer.cancel();
                finish();
            }
        });

        countdownTimer = new MyCountdownTimer(5000,1000);
        countdownTimer.start();

    }

至此大功告成

相關文章