2017-08-21 4 views
-1

Ich möchte SeekBar Farbe ändern, genau, ich möchte die Farbe des Punktes ändern, die gezogen wird, um den Fortschrittswert zu ändern. Ich weiß, dass ich es tun kann, indem ich den colorAccent-Wert ändere, aber das ist nicht das, was ich vorhabe.Change Seekbar Farbe

Antwort

0

Der Punkt Sie beziehe auf die SeekBar Thumb genannt. Um die Farbe des SeekBar Daumen zu ändern, erstellen Sie einen neuen Stil in style.xml

ändern Via XML

<SeekBar 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:thumbTint="your_color" //gives your color 
android:thumb="@drawable/yourseekthumb" //gives your drawable 
android:theme="@style/SeekBarColor" /> 

Sie können entweder geben Sie Ihre Farbe mit thumbTint oder Ihre ziehbar mit android:thumb.

Diese Methode funktioniert für API> 16.

SeekBar seekbar = (SeekBar) findViewById(R.id.seekBar); 
seekbar.getThumb().setColorFilter(your_color, PorterDuff.Mode.MULTIPLY); 

Diese Methode funktioniert nur für Android 5 und höher

Um SeekBar Daumen Farbe von Java-Code zu ändern.

+0

Wenn ich thumbTint die Farbe Änderungen in Android Studio, aber nicht in Emulator, während wenn ich neue thumb Drawable hinzufügen den Daumen verschwindet (ich habe Xml Oval hinzugefügt) –

+0

Wenn Farbe im Emulator nicht mit thumbTint ändern, versuchen Sie mit a echtes Gerät. Versuchen Sie es auch mit dem Java-Code und sehen Sie, ob es funktioniert. Wenn das Problem weiterhin besteht, fügen Sie den entsprechenden Code in Ihrer Frage als Bearbeitung hinzu. – Abhi

+0

Wurde das Problem behoben? – Abhi

0

versuchen Sie dies Verwenden Sie einfach android:thumbTint="@color/colorPrimary" in Ihrer Suchleiste.

wie diese

<SeekBar 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:max="100" 
    android:thumbTint="@color/red" 
    android:progress="0" /> 

können Sie die Thum wie dies Ihrer seekbar ändern

Drawable seekbarThumb = getResources().getDrawable(R.drawable.seekbarThumb); 
SeekBar mySeekBar = (SeekBar) findViewById(R.id.mySeekBar); 
mySeekBar .setThumb(seekbarThumb); 
Verwandte Themen