2つの質問があります。
1)シークバー(パス)の色を黄色(デフォルトの色)から白に変更するにはどうすればよいですか。私が言いたいのは、親指をスライドさせると、横断する線が灰色から黄色に変わるということです。トラック/ラインをグレーまたは白のままにしたい。基本的に、シークバーの色を変更せずに親指だけを動かしたい.
2)シークバーのサムを長方形から円形/球形/円形に変更する方法。
任意のポインタが高く評価されます。
システムに不慣れな人のために上記の回答を完成させたい、
不足しているxml(background_fill、progress_fillおよびprogressは、赤のグラデーションのように見える可能性があります
<?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/background_fill" />
<item Android:id="@Android:id/progress">
<clip Android:drawable="@drawable/progress_fill" />
</item>
</layer-list>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<gradient
Android:startColor="#FF555555"
Android:centerColor="#FF555555"
Android:endColor="#FF555555"
Android:angle="90" />
<corners Android:radius="5px" />
<stroke
Android:width="2dp"
Android:color="#50999999" />
<stroke
Android:width="1dp"
Android:color="#70555555" />
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
<gradient
Android:startColor="#FF470000"
Android:centerColor="#FFB80000"
Android:endColor="#FFFF4400"
Android:angle="180" />
<corners Android:radius="5px" />
<stroke
Android:width="2dp"
Android:color="#50999999" />
<stroke
Android:width="1dp"
Android:color="#70555555" />
</shape>
私はAndroid:thumbの実装を完了していませんでしたので、親指はまだ元のものです
したがって、シークバーを定義するレイアウトxmlからこの行を再度削除する必要があります。
Android:thumb="@drawable/thumb"
がんばろう!!!
SeekBar XMLプロパティを設定する必要があります。
<SeekBar
....
Android:progressDrawable="@drawable/progress"
Android:thumb="@drawable/thumb"
....
/>
進捗状況は次のようになります。
<?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/background_fill" />
<item Android:id="@Android:id/progress">
<clip Android:drawable="@drawable/progress_fill" />
</item>
</layer-list>
そして親指は
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/thumb_fill" />
</selector>
SeekBar
はデフォルトでcolorAccent
を使用するため、カスタムカラーをcolorAccent
として新しいスタイルを作成し、theme
属性を使用してSeekBarに適用できます。
<SeekBar>
.
.
Android:theme="@style/MySeekBarTheme"
.
</SeekBar>
@スタイルで:
<style name="MySeekBarTheme" parent="Widget.AppCompat.SeekBar" >
<item name="colorAccent">#ffff00</item>
</style>
seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
APIレベル21から色合いを追加できます。
次のプロパティをseekbar要素に追加します。
Android:progressTint = "@ Android:color/white"Android:thumbTint = "@ Android:color/white"
最終結果:
<SeekBar
Android:id="@+id/is"
Android:layout_width="match_parent"
Android:max="100"
Android:progressTint="@Android:color/white"
Android:thumbTint="@Android:color/white"/>
1。描画可能なXMLを作成:名前を付けてください:progress_drawable
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="line"> <stroke Android:width="1dp" Android:color="#fff"/> </shape>
2。シークバーに割り当てる
<SeekBar
Android:id="@+id/slider_1"
Android:progressDrawable="@drawable/progress_drawable"
Android:layout_width="180dp"
Android:layout_height="32dp"
Android:layout_gravity="center"
Android:rotation="270" />
スタイルのアクセントカラーを変更するだけ
<style name="TickMarkSeekBar" parent="Theme.KefTheme">
<item name="tickMark">@drawable/tickmark</item>
<item name="thumbTint">@Android:color/white</item>
<item name="colorAccent">@Android:color/white</item>
</style>