Android中自定義SeekBar的樣式
阿新 • • 發佈:2019-01-03
有時候原生的SeekBar太醜了,已經滿足不了我們的效果,需要我們自定義樣式。
第一步:在drawable裡建立一個xml檔案
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--定義seekbar滑動條的底色--> <item android:id="@android:id/background"> <shape> <corners android:radius="5dp" /> <solid android:color="@color/member_seekbar_right"/> <stroke android:width="1.5dp" android:color="@color/white"/> </shape> </item> <!--定義seekbar滑動條進度顏色--> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="5dp" /> <solid android:color="@color/member_seekbar_left" /> <stroke android:width="1.5dp" android:color="@color/white"/> </shape> </clip> </item> </layer-list>
第二步:在style樣式裡新增一個style樣式
<style name="SeekBar.Normal.Member" parent="@android:style/Widget.SeekBar"> <item name="android:maxHeight">8.0dip</item> <item name="android:indeterminateOnly">false</item> <item name="android:indeterminateDrawable">@color/colorAccent</item> <item name="android:progressDrawable">@drawable/seekbar_horizontal_member</item> <item name="android:minHeight">8.0dip</item> <item name="android:thumb">@mipmap/vip1</item> <item name="android:thumbOffset">0dip</item> <item name="android:splitTrack" tools:ignore="NewApi">false</item> <item name="android:outlineProvider" tools:ignore="NewApi">bounds</item> </style>
第三步:在佈局中呼叫SeekBar
<SeekBar
android:id="@+id/time_seekbar"
android:layout_gravity="center_vertical"
style="@style/SeekBar.Normal.Member"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
第四步:先在Activity中設定最大值和進度值看看效果如何
mSeekbarTime.setMax(100); mSeekbarTime.setProgress(30);
大功告成,請多多指教。