改变ListView快速滑块的图像

本文介绍了一种使用反射技术来修改Android中ListView组件快速滑块图像的方法,因为ListView本身并未提供修改该图像的API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ListView组件并没有提供修改快速滑块图像的API,因此不能直接修改快速滑块图像,所以通过反射技术修改快速滑块的图像    

    android:fastScrollEnabled="true"

  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();
  }

转载于:https://my.oschina.net/u/573470/blog/122404

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值