web-dev-qa-db-ja.com

シークバー、パスの色を黄色から白に変更

2つの質問があります。

1)シークバー(パス)の色を黄色(デフォルトの色)から白に変更するにはどうすればよいですか。私が言いたいのは、親指をスライドさせると、横断する線が灰色から黄色に変わるということです。トラック/ラインをグレーまたは白のままにしたい。基本的に、シークバーの色を変更せずに親指だけを動かしたい.

2)シークバーのサムを長方形から円形/球形/円形に変更する方法。

任意のポインタが高く評価されます。

52
David Prun

システムに不慣れな人のために上記の回答を完成させたい、

不足しているxml(background_fill、progress_fillおよびprogressは、赤のグラデーションのように見える可能性があります

progress.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/background_fill" />

        <item Android:id="@Android:id/progress">
           <clip Android:drawable="@drawable/progress_fill" />
        </item>
  </layer-list>

background_fill.xml

<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>

progress_fill.xml

<?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"

がんばろう!!!

94
Arnold

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>
68
Asahi

SeekBarはデフォルトでcolorAccentを使用するため、カスタムカラーをcolorAccentとして新しいスタイルを作成し、theme属性を使用してSeekBarに適用できます。

<SeekBar>
    .
    .
    Android:theme="@style/MySeekBarTheme"
    .
</SeekBar>

@スタイルで:

 <style name="MySeekBarTheme" parent="Widget.AppCompat.SeekBar" >
        <item name="colorAccent">#ffff00</item>
 </style>
24
hedisam
seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
16

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"/>
8
quent

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" />
1

スタイルのアクセントカラーを変更するだけ

<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>
0
RexSplode