2017-06-05 15 views
-2

私のアプリケーションのアクティビティーの1つにSeekBarがあります。進捗状況に応じてシークバーの色を変更します。

シークバーは、私が作成するオブジェクトの重要性を私に与えます。重大度は0,1,2となります。

私が使用しているときにSeekBarの背景色をdinamically変更したいと思います。どうやってやるの ?

重要性0: "#1 ff8080"

重要性1: "#FF0000の"

重要性2: "#4d0000"

ここで私が使用したい色があります

ご協力いただきありがとうございます。さらにコードが必要な場合は教えてください。

BarreImportance.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int i, boolean b) { 

      if(i==0) 
      { //it does not accept my colors.. 
       BarreImportance.getProgressDrawable().setColorFilter(Color.parseColor("#ff8080")); 
      } 
      if(i==1) 
      { 
     //it changes the whole background, not what I want...   BarreImportance.setBackgroundColor(Color.parseColor("#ff0000")); 

     } 
+0

あなたは間違った方法でカラーフィルターを設定しています。まず、 'seekBar'オブジェクトで呼び出します。次に、次のようなものを試してみましょう: 'setColorFilter(Color.WHITE、PorterDuff.Mode.SRC_ATOP);' –

+0

ありがとう!円の色を変えることも可能ですか?重要度が0の場合は、少なくともユーザーが色を認識できるようにするためです。 – David

+0

seekBar.getThumb()。setColorFilter(..) –

答えて

1

あなたはOnSeekBarChangeListener'sonProgressChangedコールバックを使用して、このように内部そこから色を変更する必要があります:mySeekBar.getProgressDrawable().setColorFilter(..)mySeekBar.getThumb().setColorFilter(..)

+0

重要性が高い場合のように1つだけの例を教えてください。 0してください? – David

関連する問題