android中Gallery控件的自动滚动实现方式
来源:互联网 发布:单片机pdf微盘 编辑:程序博客网 时间:2024/06/02 04:14
方式1:
使用Timer和TimerTask类来完成图片的自动定时滚动:
思路:循环调用Gallery类的onFling()方法。注意:一定要在子线程才管用。
代码:
task = new TimerTask() {@Overridepublic void run() {/** * 参数1和2:手指在gallery上的动作 * 参数3和4:x方向和y方向的滚动的速度,-数表示向左滚,+数表示向右 */gallery.onFling(null, null, -750, 0);}};timer.schedule(task, 1000, 5000);
方式2:
使用Handler消息机制完成
思路:子线程内死循环使用handler每隔多长时间向主线程发送消息,通知gallery改变位置。
代码:
子线程部分:
new Thread(new Runnable() {int flag = 1;@Overridepublic void run() {while (isalive) {//images为装图片的集合if ((cur_index + 1) == images.size()) {flag = -1;} else if (cur_index == 0) {flag = 1;}Message msg = handler.obtainMessage(MSG_UPDATE, cur_index,0);handler.sendMessage(msg);try {Thread.sleep(4000);} catch (InterruptedException e) {e.printStackTrace();}switch (flag) {case 1:cur_index++;break;case -1:cur_index--;break;}}}}).start();
主线程部分:
private Handler handler = new Handler() {public void handleMessage(Message msg) {if (msg.what == MSG_UPDATE) {gallery.setSelection(msg.arg1);}}};
两种方式的优缺点:
优点:
使用方式1来实现,效果和手指拖动的效果一样,滚动速度可以自己调。
使用方式2来实现,可以使用继承Gallery的子类,重写onFling方法,返回false来实现手指拖动时图片只滚动一张的效果。
缺点:
使用方式1来实现,当你用手指拖动,就会发现图片滚动的太快了,不是一张一张的滚动的,没法使用继承Gallery的子类,重写onFling方法,返回false来实现手 指拖动时图片只滚动一张的效果。
使用方式2来实现,效果没那么好看,图片说换就换了,没缓冲,滚动速度没法控制。
------不足之处请各位大侠指点。
- android中Gallery控件的自动滚动实现方式
- android中Gallery画廊效果(自动滚动)
- Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库
- Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库
- Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库
- android:在Gallery中放webview,实现滚动查看网页
- android的Gallery控件
- Android实现仿gallery垂直滚动的效果
- 关于Gallery自动滚动的代码
- Android控件中Gallery详解
- 【Android 界面效果7】Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库
- android自定义Gallery实现手动和自动循环滚动切换图片
- android自定义Gallery实现手动和自动循环滚动切换图片
- android Gallery 实现短距离滚动 取消惯性
- android--Gallery的实现
- Gallery自动循环滚动以及手动滚动的平滑切换
- Gallery自动循环滚动以及手动滚动的平滑切换
- Gallery自动循环滚动以及手动滚动的平滑切换
- 名词学习
- Eclipse Package Explorer 相关问题及解决方法
- 2012/4/26——第一次项目小记(一)
- 高效的求幂运算
- J2EE 项目开发常用jar包
- android中Gallery控件的自动滚动实现方式
- 分享常用的svn批处理命令
- 比较C Sharp和Java
- 最新电信网盘的邀请码
- mysql命令大全
- eclipse 新建Cpp文件
- SQL注入
- js ,jQuery 操作属性的相关方法
- 《计算机网络》试读之感