1

ActionBar にドロップダウン ナビゲーション リストがあります。現在選択されている項目だけでなく、その位置に応じてリスト項目の背景の背景色を変更したいと思います。

ArrayAdapter次のように背景を拡張および変更する独自のクラスを作成しました。

@Override
public View getView (int position, View convertView, ViewGroup parent) {
    View v = super.getView(position, convertView, parent);
    v.setBackgroundColor(Color.parseColor(VideoGroup.getColorForId(position)));
    return v;
}

@Override
public View getDropDownView (int position, View convertView, ViewGroup parent) {
    View v = super.getView(position, convertView, parent);
    v.setBackgroundColor(Color.parseColor(VideoGroup.getColorForId(position)));
    return v;
}

ただし、これにより次の結果が得られます。実際のリスト項目はかなりよく見えますが、現在選択されている項目はそうではありません。

Group 1ここの背景色を取得して、ナビゲーション ボタンの領域全体を埋めるにはどうすればよいですか?

4

1 に答える 1

1

残念ながら、Spinner 自体は画像であるため、理想的には色ごとに画像が必要になるため、色を変更するのは困難です。たとえば、テキストの背景を三角形を超えて拡張することはできません。それは間違いなく実行できますが、おそらくかなりのカスタマイズが必要になるでしょう。

ビューにカラー マスクを適用する別の (そしておそらくもっと簡単な) 方法は、フィルターを使用することです。

    spinner.getBackground().setColorFilter(THE_COLOR_GOES_HERE, PorterDuff.Mode.MULTIPLY);
于 2012-12-01T20:36:53.953 に答える