seekbar 好像跟 processbar差不多~
不過seekbar 我覺得是指user input, processbar比較偏系統自動運作(進度)
layer_bar.xml
先決定自定的顏色, 用layer-list製作
background 背景色
secondaryProgress 前景色(bar條顏色)
若是thumb(指標)~ 要用製作的話就在這邊加好像就會出來~
不過我的指標是用自訂圖檔, 就不用再寫~~
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/background">
<shape>
<stroke android:color="#FFBB73" />
<solid android:color="#FFBB73" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<stroke android:color="#6DE76E" />
<solid android:color="#6DE76E" />
</shape>
</clip>
</item>
</layer-list>
resources xml:
minHeight/maxHeight 可改bar的寬度(高度)
thumb 主要是換中間的圖標(自己加一個png進去)
progressDrawable 是左半邊繪
indeterminateDrawable 算底圖
<style name="tallerBarStyle" parent="@android:style/Widget.SeekBar">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@drawable/layer_bar</item>
<item name="android:indeterminateDrawable">@drawable/layer_bar</item>
<item name="android:minHeight">8dip</item>
<item name="android:maxHeight">20dip</item>
<item name="android:thumb">@drawable/monster09</item>
</style>
xml:
max 為bar的最高值, 0~android:max
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="111dp"
android:max="9"
style="@+style/tallerBarStyle"/>
code:
以上設定應該~ 就可以決定外型了~ 再來就是加bar的listener...
通常就是bar值變動~ 改些資料值~
bar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
// TODO Auto-generated method stub
showInfo();
}
});
----------------------------------------------------------------------------------
如果只改指標~ 那條BAR不介意細細的~ 有更簡單的寫法~
不用做style...只做簡單顏色可用colorFiliter
Drawable thumb = getResources().getDrawable( R.drawable.monster09 );
bar2.setThumb(thumb);
bar2.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);