web-dev-qa-db-ja.com

シークバーのつまみの色を変更するにはどうすればよいですか?

Androidアプリにデフォルトのseekbarがあります。thumbseekbarを押したままにすると、黄色に変わります。代わりに、押したときに青くなります。これを行うにはどうすればよいですか?これが基本的な質問である場合はお詫び申し上げます。Android開発に慣れていません。ありがとうございます。

19
vergil corleone

デフォルトのつまみが気に入らない場合は、独自の Drawable を作成する必要があります。これにより、次のようなコードでつまみを設定できます。

Drawable thumb = getResources().getDrawable( R.drawable.myThumb );
SeekBar mSeekBar = (SeekBar) findViewById(R.id.mySeekBar);
mSeekbar.setThumb(thumb);

または、次のようにして親指をXMLに設定できます。

<SeekBar 
    ...
    Android:thumb="@drawable/seek_thumb" />

実際のDrawableは、画像、形状、または必要に応じて他の種類のDrawableにすることができます。親指が押されたときに外観を変更したい場合は、 State List Drawable

16
Tanis.7x

画像フィルターを使用して、デフォルトの状態リストドローアブル(SeekBarを含む)の色を変更します。

  // Change seekbar color to green.
  SeekBar sb = (SeekBar) findViewById(R.id.seekBar1);
  sb.getProgressDrawable().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
  sb.getThumb().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);

メソッドgetThumbは、API 16以降(Jelly Bean)以降でのみ使用できます。

28
zavidovych

追加のスタイリングの必要はありません。 Androidはxmlでサポートします。シークバーにAndroid:thumbTint = "@ color/yourColor"を追加するだけです。

たとえば.

<SeekBar
     Android:layout_width="match_parent"
     Android:layout_height="wrap_content"
     Android:max="100"
     Android:thumbTint="@color/red"
     Android:progress="0" />
19
Kuldeep Sakhiya