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 Gallery获取滑动停止的位置
在网上看到很多人想得到Gallery滑动停止的位置,大部分是通过起线程的方式来获取,嘿嘿,看了一下源码查了API,
发现一个方法:
public voidsetCallbackDuringFling(boolean shouldCallback)
Since: API Level 1 Whether or not to callback on anygetOnItemSelectedListener()
while the items are being flinged. If false, only the final selected item will cause the callback. If true, all items between the first and the final will cause callbacks.
大概意思是,设为false,getOnItemSelectedListener()中才返回gallery的停止位置position,滑动过程中不触发getOnItemSelectedListener()事件。
在
getOnItemSelectedListener()
中
public void onItemSelected(final AdapterView<?> parent, final View view,
final int position, long id) {
System.out.println("itme = " + id);
}
当滑动停止后才返回Item,打印停止位置
更多相关文章
- Android(安卓)telephone
- 安卓ScrollView嵌套RecyclerView,GridView,ViewPager冲突解决
- Android中bool的使用
- Android源码解析之(三)Android异步任务AsyncTask
- Android(安卓)Launcher源码研究(一) 基本结构
- Android-NDK开发之基础--Android(安卓)JNI实例代码(一)-- 在JNI
- Android视频播放时停止后台运行的方法
- android---Timer和Handler
- Android创建定时和周期任务