专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 图形/图像

小弟我的Android进阶之旅->怎么为ListView组件加上快速滑块以及修改快速滑块图像

发布时间:2011-06-27 19:22:51 文章来源:www.iduyao.cn 采编人员:星星草
我的Android进阶之旅------>如何为ListView组件加上快速滑块以及修改快速滑块图像

使用布局文件需要将android:fastScrollEnabled="true" ,如下代码所示:

    <ListView 
        android:id="@+id/listView" android:layout_width="fill_parent" 
    	android:layout_height="fill_parent" android:fastScrollEnabled="true" 
    	android:focusable="true"
        />
使用Java代码则需要调用AbsListView.setFastScrollEnabled(boolean enabled)方法。如下代码所示:

     ListView listView=new ListView(getApplicationContext());
     listView.setFastScrollEnabled(true);

ListView组件并没有提供修改快速滑块图像的API,因此不能直接修改快速滑块图像。但是可以通过反射技术修改快速滑块图像,代码如下:

                    //FastScroller.mThumbDrawable变量保存了快速滑块图像
		    //首先要通过AbsListView.mFastScroller获取FastScroller对象
		    Field field = AbsListView.class.getDeclaredField("mFastScroller"); 
		    field.setAccessible(true); 
		    Object object=field.get(listView); 
		    //获取FastScroller.mThumbDrawable变量的对象
		    field=field.getType().getDeclaredField("mThumbDrawable"); 
		    field.setAccessible(true); 
		    //获取FastScroller.mThumbDrawable变量的值
		    Drawable drawable=(Drawable) field.get(object); 
		    //装载新的快速滑块对象
		    drawable=getResources().getDrawable(R.drawable.img); 
		    //重新设置快速滑块对象
		    field.set(object,drawable);
                    //设置最小页数
		    field .setAccessible(true);
		    Field minPages =object.getClass().getDeclaredField("MIN_PAGES");
		    minPages.setAccessible(true);
		    minPages.set(object,1);
 

==================================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址:http://blog.csdn.net/ouyang_peng

==================================================================================================

  



版权声明:本文为博主原创文章,未经博主允许不得转载。

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: