`
mermaid
  • 浏览: 42315 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

修改listView滑块图片

F# 
阅读更多
上一篇介绍了快速滚动,假如在开发过程中需要修改滚动时的图片,该怎么实现呢?
通篇查看了ListView及其超累AbsListView,都未找到自定义图片的设置接口。看来是没打算让开发者更改了。但是用户要求我们自定义这个图片。那只能用非常手段了。

经过分析发现,该图片是ListView超类AbsListView的一个成员mFastScroller对象的成员mThumbDrawable。这里mThumbDrawable是Drawable类型的。mFastScroller是FastScroller类型,这个类型比较麻烦,类的声明没有modifier,也就是default(package),只能供包内的类调用。

因此反射代码写的稍微麻烦一些:

try {
    Field f = AbsListView.class.getDeclaredField("mFastScroller");
    f.setAccessible(true);
    Object o=f.get(listView);
    f=f.getType().getDeclaredField("mThumbDrawable");
    f.setAccessible(true);
    Drawable drawable=(Drawable) f.get(o);
    drawable=getResources().getDrawable(R.drawable.icon);
    f.set(o,drawable);
    Toast.makeText(this, f.getType().getName(), 1000).show();
} catch (Exception e) {
    throw new RuntimeException(e);
}

这样就可以改变默认的滑块图片了。
  • 大小: 30.9 KB
分享到:
评论

相关推荐

    XPTable源代码

    - 可上下调整的数字列:用户可以通过上下箭头直接调整数值,这种交互方式常见于滑块控件。 - 进度条列:在单元格内显示进度条,用于可视化任务或过程的状态。 3. **自定义和扩展** - 开源源代码使得开发者可以...

    几个常用控件的使用例程

    开发者可以添加、删除或修改`ListViewItem`或`TreeNode`,并通过各种事件来响应用户操作。 9. **计时器(Timer)**:计时器控件周期性地触发事件,如`Tick`事件,常用于实现定时功能,如倒计时或自动更新。 10. **...

    包含android所有控件demo

    在"MyPractise"这个压缩包中,每个控件应该都有对应的示例代码和运行效果,这使得开发者可以直接查看和修改源码,了解每个控件的工作原理以及如何在实际项目中应用。通过这些实践,开发者能够加深对Android控件的...

    android部件代码集合

    5. **图像(ImageButton/ImageView)**:`ImageButton`是带有图像的按钮,而`ImageView`则用于显示静态图片。 6. **切换开关(Switch/CheckBox/RadioButton)**:用户可以选择开启或关闭某个功能。`Switch`是滑动式的...

    VB6.0控件时尚编程百例,100个VB例子,这些都是很难得例子,代码完整,希望和大家分享,很划算的。

    2. **数据输入与显示**:通过列表框(ListBox)和组合框(ComboBox)可以实现数据的列举和选择,而列表视图(ListView)和树视图(TreeView)则能展示更为复杂的数据结构。 3. **用户交互**:定时器控件(Timer)...

    MyAndroidExample

    在"MyAndroidExample"中,开发者可能深入探讨了如何在Java代码中处理这些控件的事件,如点击事件、触摸事件、焦点变化等,并展示了如何动态地修改控件的属性和数据。 此外,文件中可能还包括了控件之间的布局管理,...

    jquery.mobile

    - **个人资料编辑**: 用户可以查看和修改个人信息,如头像、昵称、简介等,使用表单组件和图片上传功能。 - **动态发布**: 提供文本输入框、图片上传、标签选择等功能,让用户方便地发布动态。 - **消息通知**: ...

    WPF样式 WpfToolkit-master

    例如,你可以创建一个自定义的按钮,让它看起来像一个图片或滑块。通过设置`ControlTemplate`属性,开发者可以完全控制控件的呈现方式。 ### WpfToolkit库 WpfToolkit是WPF开发中的一个重要补充,它包含了一些不在...

    jquery mobile demo

    8. **滑块(Slider)**:创建滑动选择器,通常用于数值选择或开关控制。 9. **页切换(Page Transitions)**:平滑的页面过渡效果,增加视觉吸引力。 **项目结构分析** 1. **css** 文件夹:包含了 jQuery Mobile ...

    Visual C++2010开发权威指南(共三部分).part1.rar

    6.9 Visual C++ 2010 ListView开发 335 6.10 Visual C++ 2010 RichEditView开发 335 6.11 VisualC++ 2010 TreeView开发 336 6.12 Visual C++ 2010 Office 2007风格文档视图开发框架 337 6.13 Visual C++ 2010 Visual...

    WPF控件样式和模板手册

    - **模板**(Templates):提供了更深层次的定制能力,允许修改控件的内部结构和外观。通过模板,开发者可以完全控制控件的呈现方式。 #### 按类别分类的控件 WPF提供了大量的内置控件,这些控件根据功能和用途被...

    ExtJS的xtype列表

    - `slider`: 用于创建滑动条,用户可以通过拖动滑块来选择数值。 - `progress`: 显示进度条,用于表示任务完成的进度。 - `statusbar`: 提供了一个区域来显示应用程序的状态信息,可以包含状态文本、按钮等。 - ...

    【国开搜题】国家开放大学 一网一平台 Android核心开发技术01 期末考试押题试卷.docx

    - **开放性**: 开源操作系统,允许开发者自由修改源代码。 - **与运营商的关系**: Android系统并非与运营商捆绑销售,而是广泛应用于不同品牌的手机。 - **丰富的硬件选择**: 支持各种不同配置和价位的硬件。 - ...

    QT控件视图类(Qt-creator的视图控件)

    这两个控件分别用于输入整数和浮点数,它们都提供了上下箭头来方便用户修改值。 ##### 6. QTimeEdit、QDateEdit 和 QDateTimeEdit 这三个控件分别用于选择时间、日期和日期时间。 ##### 7. QDial 和 QScrollBar/...

    C# 控件缩写大全 vs2005

    - **应用场景**: 文件修改监听、自动同步等。 7. **hlp (HelpProvider)** - **描述**: 帮助提供者,为控件提供帮助信息。 - **应用场景**: 提供帮助文档、操作指南等。 8. **img (ImageList)** - **描述**: ...

    Ext Js权威指南(.zip.001

    Ex4.0共2个压缩包特性,《ext js权威指南》 前 言 第1章 ext js 4开发入门 / 1 1.1 学习ext js必需的基础知识 / 1 1.2 json概述 / 3 1.2.1 认识json / 3 1.2.2 json的结构 / 3 1.2.3 json的例子 / 4 ...

Global site tag (gtag.js) - Google Analytics