0

当 android 手机的屏幕闲置或未使用 10 秒时,我在尝试实现弹出图像​​时遇到问题。目前我正在使用一个计时器,但需要实现一个空闲监听器,但我不知道如何做到这一点。有谁能够帮我?

弹出图像由下面代码中的计时器完成。

public class CustomPopupWindowExample extends Activity {
    private Animation animShow, animHide;
    com.example.custompopupwindowexample.TransparentPanel popup;

    @Override
    public void onCreate(Bundle icicle) {

        super.onCreate(icicle);

        setContentView(R.layout.popup);

        popup = (com.example.custompopupwindowexample.TransparentPanel) findViewById(R.id.popup_window);
        //Declare the timer
        Timer t = new Timer();
        //Set the schedule function and rate
        t.scheduleAtFixedRate(new TimerTask() {

            @Override
            public void run() {
                //Called each time when 1000 milliseconds (1 second) (the period parameter)

                //We must use this function in order to change the text view text
                runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        popup.setVisibility(View.GONE);
                        initPopup();
                    }                        
                });
            }                    
        },
        //Set how long before to start calling the TimerTask (in milliseconds)
        10000,
        //Set the amount of time between each execution (in milliseconds)
        50000);
    }

    private void initPopup() {
        final com.example.custompopupwindowexample.TransparentPanel popup = (com.example.custompopupwindowexample.TransparentPanel) findViewById(R.id.popup_window);

        animShow = AnimationUtils.loadAnimation(this, R.anim.popup_show);
        animHide = AnimationUtils.loadAnimation(this, R.anim.popup_hide);

        final Button   hideButton = (Button) findViewById(R.id.hide_popup_button);

        final ImageView locationDescription = (ImageView) findViewById(R.id.location_description);

        locationDescription.setBackgroundResource(R.drawable.nike_logo);
        popup.setVisibility(View.VISIBLE);
        popup.startAnimation(animShow);
        hideButton.setEnabled(true);

        hideButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                popup.startAnimation( animHide );
                hideButton.setEnabled(false);
                popup.setVisibility(View.GONE);
        }});
    }
}
4

1 回答 1

0

你应该使用一个触摸监听器,所以 onTouchEvent 你可以检查用户是否触摸了它。定义一个变量来保存空闲时间值,如果他/她触摸然后将该变量设置为 0,否则将其递增,当它达到 10 秒(或您想要的任何值)时显示弹出。

于 2013-04-21T14:08:07.063 回答