0

ListView があり、現在アクティブな行を別の色に変更したいと考えています。

現在、私はこれを持っています:

rowView.setBackgroundColor( 0xFF0000FF ); // make blue bg

そして、それは期待どおりに機能します。

ただし、「哲学的」問題が 1 つあります。すべてデフォルトの配色を使用しているため、どの色を使用すればよいのでしょうか。青は悪い例です。Android のスキームは暗い場合も明るい場合もあれば、完全にカスタム化されている場合もあるためです。

私が念頭に置いているのは、逆の色、見た目に似た色 (たとえば 20% 暗い)、またはおそらく同じ色ですが、何らかの効果がある可能性があります。

Android 2.2 以降で動作する必要があります

編集:

私が探している解決策は、次のようなものです。

int x = this.getResources().getColor(android.R.color.holo_blue_bright);
listViewItem.setBackgroundColor(x);
4

2 に答える 2

1

これが色であることがわかっている場合は、試すことができます

    ColorDrawable buttonColor = (ColorDrawable) button.getBackground();

また、Android 3.0 以降を使用している場合は、色のリソース ID を取得できます。

    int colorId = buttonColor.getColor();

次に、次の操作を行います。

    int red = Color.red(colorId);
    int blue = Color.blue(colorId);
    int green = Color.green(colorId);
    double percent = 400;
    button.setBackgroundColor(Color.rgb((int)(red * percent/100),
        (int)(blue * percent/100),(int)(green * percent/100)));

色を大きくすると色が明るくなり、小さくすると色が暗くなります。

于 2013-07-19T18:04:16.807 に答える
0

より暗い色またはより明るい色を計算する関数が必要な場合は、Brighter/Darker 関数を参照してください。JavaScript ですが、Java に簡単に変換できます

于 2013-07-19T15:15:55.600 に答える