展会信息港展会大全

Android Gallery 滑动停止监听方案(不起线程)
来源:互联网   发布日期:2015-10-03 10:45:11   浏览:1234次  

导读:网上查了不少Gallery停止监听位置的方法,都是通过起线程然后睡眠来判断,我觉得这样没必要开线程,耗费资源,同意的举手。偶然看图库源码的时候看见一段代码,packages\apps\Gal...

网上查了不少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开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港