上一篇介绍了快速滚动,假如在开发过程中需要修改滚动时的图片,该怎么实现呢?
通篇查看了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
分享到:
相关推荐
- 可上下调整的数字列:用户可以通过上下箭头直接调整数值,这种交互方式常见于滑块控件。 - 进度条列:在单元格内显示进度条,用于可视化任务或过程的状态。 3. **自定义和扩展** - 开源源代码使得开发者可以...
开发者可以添加、删除或修改`ListViewItem`或`TreeNode`,并通过各种事件来响应用户操作。 9. **计时器(Timer)**:计时器控件周期性地触发事件,如`Tick`事件,常用于实现定时功能,如倒计时或自动更新。 10. **...
在"MyPractise"这个压缩包中,每个控件应该都有对应的示例代码和运行效果,这使得开发者可以直接查看和修改源码,了解每个控件的工作原理以及如何在实际项目中应用。通过这些实践,开发者能够加深对Android控件的...
5. **图像(ImageButton/ImageView)**:`ImageButton`是带有图像的按钮,而`ImageView`则用于显示静态图片。 6. **切换开关(Switch/CheckBox/RadioButton)**:用户可以选择开启或关闭某个功能。`Switch`是滑动式的...
2. **数据输入与显示**:通过列表框(ListBox)和组合框(ComboBox)可以实现数据的列举和选择,而列表视图(ListView)和树视图(TreeView)则能展示更为复杂的数据结构。 3. **用户交互**:定时器控件(Timer)...
在"MyAndroidExample"中,开发者可能深入探讨了如何在Java代码中处理这些控件的事件,如点击事件、触摸事件、焦点变化等,并展示了如何动态地修改控件的属性和数据。 此外,文件中可能还包括了控件之间的布局管理,...
- **个人资料编辑**: 用户可以查看和修改个人信息,如头像、昵称、简介等,使用表单组件和图片上传功能。 - **动态发布**: 提供文本输入框、图片上传、标签选择等功能,让用户方便地发布动态。 - **消息通知**: ...
例如,你可以创建一个自定义的按钮,让它看起来像一个图片或滑块。通过设置`ControlTemplate`属性,开发者可以完全控制控件的呈现方式。 ### WpfToolkit库 WpfToolkit是WPF开发中的一个重要补充,它包含了一些不在...
8. **滑块(Slider)**:创建滑动选择器,通常用于数值选择或开关控制。 9. **页切换(Page Transitions)**:平滑的页面过渡效果,增加视觉吸引力。 **项目结构分析** 1. **css** 文件夹:包含了 jQuery Mobile ...
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...
- **模板**(Templates):提供了更深层次的定制能力,允许修改控件的内部结构和外观。通过模板,开发者可以完全控制控件的呈现方式。 #### 按类别分类的控件 WPF提供了大量的内置控件,这些控件根据功能和用途被...
- `slider`: 用于创建滑动条,用户可以通过拖动滑块来选择数值。 - `progress`: 显示进度条,用于表示任务完成的进度。 - `statusbar`: 提供了一个区域来显示应用程序的状态信息,可以包含状态文本、按钮等。 - ...
- **开放性**: 开源操作系统,允许开发者自由修改源代码。 - **与运营商的关系**: Android系统并非与运营商捆绑销售,而是广泛应用于不同品牌的手机。 - **丰富的硬件选择**: 支持各种不同配置和价位的硬件。 - ...
这两个控件分别用于输入整数和浮点数,它们都提供了上下箭头来方便用户修改值。 ##### 6. QTimeEdit、QDateEdit 和 QDateTimeEdit 这三个控件分别用于选择时间、日期和日期时间。 ##### 7. QDial 和 QScrollBar/...
- **应用场景**: 文件修改监听、自动同步等。 7. **hlp (HelpProvider)** - **描述**: 帮助提供者,为控件提供帮助信息。 - **应用场景**: 提供帮助文档、操作指南等。 8. **img (ImageList)** - **描述**: ...
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 ...