2016-04-11 6 views
0

私は特定の色を持つカラーピッカーが必要なプロジェクトに取り組んでいます。私の要求がより簡単だったので、私は何も想像したくなかったし、Githubのthisで終わった。実装は単純ですが、私は1つの色しか見ることができません。私はcolors.xmlに指定したい色を持っているので、それらを追加しましたが、助けになるわけではありません。Android:ColorPickerは1つの色しか表示せず、Palleteから間違った色を選択します

スクリーンショット:

enter image description here

XML:

<uz.shift.colorpicker.LineColorPicker 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/colorPicker" 
     android:layout_width="match_parent" 
     android:layout_height="60dp" 
     app:orientation="horizontal"/> 

コード:

public class EditNoteActivity extends Activity { 

    LineColorPicker colorPicker; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.edit_note); 
colorPicker = (LineColorPicker)findViewById(R.id.colorPicker); 

     colorPicker.setColors(new int[] {R.color.noteAqua,R.color.noteBlue,R.color.noteDarkBlue,R.color.noteDeepBlue, 
       R.color.noteDeepRed,R.color.noteGreen,R.color.noteGrey, 
       R.color.noteOrange,R.color.notePink,R.color.notePurple,R.color.noteRed, 
       R.color.noteYellow}); 
    colorPicker.setOnColorChangedListener(new OnColorChangedListener() { 
      @Override 
      public void onColorChanged(int c) { 
       Log.d("Selected color ",Integer.toHexString(c)); 
      } 
     }); 
} 
private void setColorForPicker(String noteColor){ 
    if (noteColor.equals("#1abc9c")) { 
     colorPicker.setSelectedColor(R.color.noteAqua); 

    } 
    if (noteColor.equals("#3498db")) { 
     colorPicker.setSelectedColor(R.color.noteBlue); 
    } 
    if (noteColor.equals("#34495e")) { 
     colorPicker.setSelectedColor(R.color.noteDarkBlue); 
    } 
    if (noteColor.equals("#0071c1")) { 
     colorPicker.setSelectedColor(R.color.noteDeepBlue); 
    } 
    if (noteColor.equals("#c00000")) { 
     colorPicker.setSelectedColor(R.color.noteDeepRed); 
    } 
    if (noteColor.equals("#2ecc71")) { 
     colorPicker.setSelectedColor(R.color.noteGreen); 

    } 
    if (noteColor.equals("#95a5a6")) { 
     colorPicker.setSelectedColor(R.color.noteGrey); 
     } 
    if (noteColor.equals("#e67e22")) { 
     colorPicker.setSelectedColor(R.color.noteOrange); 
    } 
    if (noteColor.equals("#ff56bb")) { 
     colorPicker.setSelectedColor(R.color.notePink); 
    } 
    if (noteColor.equals("#9b59b6")) { 
     colorPicker.setSelectedColor(R.color.notePurple); 
    } 

    if (noteColor.equals("#e74c3c")) { 
     colorPicker.setSelectedColor(R.color.noteRed); 
    } 
    if (noteColor.equals("#f1c40f")) { 
     colorPicker.setSelectedColor(R.color.noteYellow); 
    } 
} 

color.xmlファイル:

<color name="noteAqua">#1abc9c</color> 
    <color name="noteBlue">#3498db</color> 
    <color name="noteDarkBlue">#34495e</color> 
    <color name="noteDeepBlue">#0071c1</color> 
    <color name="noteDeepRed">#c00000</color> 
    <color name="noteGreen">#2ecc71</color> 
    <color name="noteGrey">#95a5a6</color> 
    <color name="noteOrange">#e67e22</color> 
    <color name="notePink">#ff56bb</color> 
    <color name="notePurple">#9b59b6</color> 
    <color name="noteRed">#e74c3c</color> 
    <color name="noteYellow">#f1c40f</color> 

私は間違って何をしていますか?ありがとうございました。

答えて

1

あなたは配列に色識別子を渡すのではなく、値そのものれ、あなたが使用してリソースから値をロードする必要があります。

int noteAqua = getResources().getColor(R.color.noteAqua); 
colorPicker.setColors(new int[] {noteAqua}); 

それとも、定数を使用してではなく、色のリソースを使用して配列を定義することができます:

int noteAqua = Color.parseColor("#1abc9c") 
colorPicker.setColors(new int[] {noteAqua}); 
+0

ここで試してみます。これらの値をすべて置き換えるありがとうございました。 –

+0

それは働いた。ありがとうございます.. :-) –

+0

あなたはようこそ! – RobVoisey

関連する問題