之前提交過一個Android防iOS音量或亮度等調節的效果,只是簡單的提交了代碼分享,沒有對代碼的邏輯進行梳理如今希望能有更多原創的東西能與大家分享,同時加深自己的記憶,在這裡對代碼進行一些分析和改進
效果圖:
代碼分享:主要是layout
- <RatingBar
- android:id="@+id/volume_ratingBar"
- style="@style/wmtRatingBar"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:numStars="15"
- android:paddingBottom="20dip"
- android:paddingTop="20dip" >
- </RatingBar>
在這裡使用的是對Ratingbar進行一些小的修改,主要是修改了其style,即
wmtRatingBar.xml
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <style name="wmtRatingBar" parent="@android:style/Widget.RatingBar">
- <item name="android:progressDrawable">@drawable/wmt_ratingbar</item>
- <item name="android:minHeight">16dip</item>
- <item name="android:maxHeight">16dip</item>
- </style>
- </resources>
wmt_ratingbar.xml
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- 分別替換原圖背景和進度塊 --!>
- <item android:id="@+android:id/background" android:drawable="@drawable/wmt_ratingbar_off"></item>
- <item android:id="@+android:id/secondaryProgress" android:drawable="@drawable/wmt_ratingbar_off"></item>
- <item android:id="@+android:id/progress" android:drawable="@drawable/wmt_ratingbar_on"></item>
- </layer-list>
如此就已經將layout修改完畢由於RatingBar的方法只能監聽停止的動作,就會帶來一個很明顯的問題,不能在move的同時修改需要的效果,如音量/亮度如果你是做系統,可以在RatingBar.java文件中做一個簡單的修改即可,但是只是從應用程度上來說,暫時還沒有好的方法.