標籤:
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, };@Overrideprotected 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
【Android】自訂listview快速捲軸