ListView组件并无提供修改快速滑块图像的API,所以不能直接修改快速滑块图像,因此经过反射技术修改快速滑块的图像 android
android:fastScrollEnabled="true" spa
ListView lv=(ListView)findViewById(R.id.lv);
// 获取FastScroller对象
try {
Field field = AbsListView.class.getDeclaredField("mFastScroller");
field.setAccessible(true);
Object obj = field.get(lv);
// 获取FastScroller.mTumbDrawable变量的Field对象
field = field.getType().getDeclaredField("mThumbDrawable");
field.setAccessible(true);
// 获取FastScroller.mThumbDrawable变量的值
Drawable drawable = (Drawable) field.get(obj);
// 装载新的快速滑块图像
drawable = getResources().getDrawable(R.drawable.ic_launcher);
// 从新设置快速滑块的图像
field.set(obj, drawable);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} 对象