1

私は地図上に行くピンを持っています -

今私はやっています:

Drawable Marker_1 = null;
Drawable Marker_2 = null;
Drawable Marker_3 = null;
Drawable Marker_4 = null;
Drawable Marker_5 = null;
Drawable Marker_6 = null;
Drawable Marker_7 = null;
Drawable Marker_8 = null;
Drawable Marker_9 = null;
Drawable Marker_10 = null;
Drawable Marker_11 = null;
    Marker_2 = MA.getResources().getDrawable(R.drawable.mark_00ff00);
    Marker_3 = MA.getResources().getDrawable(R.drawable.mark_990099);
    Marker_4 = MA.getResources().getDrawable(R.drawable.mark_ff0000);
    Marker_5 = MA.getResources().getDrawable(R.drawable.mark_000000);
    Marker_6 = MA.getResources().getDrawable(R.drawable.mark_ffffff);
    Marker_7 = MA.getResources().getDrawable(R.drawable.mark_999999);
    Marker_8 = MA.getResources().getDrawable(R.drawable.mark_ff9900);
    Marker_9 = MA.getResources().getDrawable(R.drawable.mark_ffcccc);
    Marker_10 = MA.getResources().getDrawable(R.drawable.mark_999966);
    Marker_11 = MA.getResources().getDrawable(R.drawable.mark_cc99cc);
    houseMarker = MA.getResources().getDrawable(R.drawable.house_outline);

...

if (color.contains("ffffff")) {
        return houseMarker;
    } else if (color.contains("00ff00")) {
        return Marker_2;
    } else if (color.contains("990099")) {
        return Marker_3;
    } else if (color.contains("ff0000")) {
        return Marker_4;
    } else if (color.contains("000000")) {
        return Marker_5;
    } else if (color.contains("0000ff")) {
        return Marker_1;
    } else if (color.contains("999999")) {
        return Marker_7;
    } else if (color.contains("ff9900")) {
        return Marker_8;
    } else if (color.contains("ffcccc")) {
        return Marker_9;
    } else if (color.contains("999966")) {
        return Marker_10;
    } else if (color.contains("cc99cc")) {
        return Marker_11;
    }

これを避けて、1 つのマーカー (白いドローアブル) だけを持ってから、ドローアブルの色を渡されたものに変更したい

4

1 に答える 1

-1

それが本当に使用できる色である場合:

Drawable.setColorFilter( yourcolor, Mode.MULTIPLY )

これは、白いものをすべて取り、それをあなたの色にします。透明なものはすべて無視する必要があり、他の色は色を微調整するだけです。

なぜあなたの色が糸なのかわかりません。それらをintの16進値として取得する必要があります。

したがって、Marker_9 には 0xffffcccc を使用し、マーカー 10 には 0xff999966 を使用します。

于 2013-06-08T02:32:55.303 に答える