当前位置:操作系统 > 安卓/Android >>

Android Gallery 滑动停止监听方案(不起线程)

网上查了不少Gallery停止监听位置的方法,都是通过起线程然后睡眠来判断,我觉得这样没必要开线程,耗费资源,同意的举手。

偶然看图库源码的时候看见一段代码,packages\apps\Gallery\src\com\android\camera\ViewImage.java

 

1
<strong>private void scheduleDismissOnScreenControls() {
2
        mHandler.removeCallbacks(mDismissOnScreenControlRunner);
3
        mHandler.postDelayed(mDismissOnScreenControlRunner,2000);//延迟
4
 
5
}</strong>
         再结合gallery的OnItemSelectedListener,就可以在滑动停止后执行一些操作:

 

01
class MyOnSelectLinstener implements OnItemSelectedListener {
02
    @Override
03
    public void onItemSelected(AdapterView<?> parent, View view,int position, long id) {
04
         scheduleDismissOnScreenControls();
05
    }
06
    public void onNothingSelected(AdapterView<?> parent) {
07
    }
08
    
09
}
10
private void scheduleDismissOnScreenControls() {
11
        mHandler.removeCallbacks(mDismissOnScreenControlRunner);
12
        mHandler.postDelayed(mDismissOnScreenControlRunner, 2000);
13
}
  在Runnable中执行操作,当Gallery滑动换页的时候,mHandler先把Runnable从列队中删除,其中的操作因此不会执行,然后在列队中添加延迟的Runnable,如果在延迟的时间内没有再次翻页就执行Runnable中的操作,这里可以在gallery中进行判断,拖动的时候可以不执行Runnable中的方法,具体就不说了。

这样就可以起到滑动停止监听的作用。


作者:闪星
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,