http://blog.csdn.net/xyang81/article/details/17680333
在eoe上看到有个贴子通过反射,动态修改FastScroller对象的mThumbDrawable属性来改变快速滑动块的图标,这也不为于一种实现方式,但反射的效率较低。下面将介绍使用Style的方式来自定义图标。
从FastScroller类的init方法中可以得知,mThumbDrawable是通过获取当前Activity主题的android.R.attr.fastScrollThumbDrawable属性赋值,既然是这样的话,我们完全可以自定义一个主题,覆盖android.R.attr.fastScrollThumbDrawable属性对应的Drawable不就搞定了!
1、定义一个主题
<style name="ListViewFastScrollThumb" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen">
<item name="android:fastScrollThumbDrawable">@drawable/ic_launcher</item>
</style>
2、当前ListView所在Activity应用自定义的主题
<activity
android:name="com.example.actionbardemo.MainActivity"
android:label="@string/app_name"
android:theme="@style/ListViewFastScrollThumb" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
3、验证
public class MainActivity extends ListActivity {
private static final int[] ATTRS = new int[] {
android.R.attr.fastScrollThumbDrawable,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Cheeses.sCheeseStrings));
ImageView imageView = (ImageView) findViewById(R.id.fastScrollDrawable);
Theme theme = getTheme();
TypedArray a = theme.obtainStyledAttributes(ATTRS);
Drawable drawable = a.getDrawable(0);
imageView.setBackgroundDrawable(drawable);
}
}
布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/fastScrollDrawable"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fastScrollEnabled="true"
/>
</LinearLayout>
Demo下载地址:http://download.csdn.net/detail/xyang81/6788411