いくつかの長方形を描画してメソッドListView
を拡張するカスタムがあるとします。onDraw()
class Listpicker extends ListView {
//..Some other methods here..//
@Override
protected void onDraw(android.graphics.Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(glassPickerBitmap, null, glassRect, semiTransparrentPaint);
}
}
描画されたビットマップは、幅がリストビューの幅に等しく、高さがいくらかの長方形であるある種のグラスを表しています。私が望むのは、リスト項目がこの長方形にスクロールすると、テキストの描画に使用される色 (背景などを持つすべての項目ではない) が別の色に変更されることです。したがって、たとえば、テキストの半分の高さだけが に収まるようにリスト項目が収まる場合、リスト項目glassPickerBitmap
の外側の部分は序数の色のままにし、内側の部分はglassPickerBitmap
テキストの色を変更する必要があります。リスト項目は背景のないシンプルな TextView です。
これはどのように達成できますか?に割り当てColorFilter
られている可能性がありPaint
ますか?しかしここで?onDraw()
のメソッドは、スクロールさListview
れたときにも呼び出されませんListView
...たとえば、カスタマイズされたビュー内でこれを実行できますか?それはListView
のアイテムになりますか? または、いくつかのカラー/シェーダー/ここで使用できるオーバーレイを他に知らないかもしれませんが、どこで?
編集(画像の例を追加):
これは、実際のアプリからの切り抜きの例です。2 つListView
の s があります。1 つは左側、もう 1 つは右側です。ガラスは灰色の長方形です。現在、左のリストでは「米ドル」通貨が選択されています。ListView
その選択はUSDとAfghan Afghaniの間のどこかにあります。さて、私が欲しいのは、左側の米ドル通貨がListView
赤で描かれることです(正確な色は今は重要ではありません。後で意味のあるものに変更します)と同時に、「米ドル」の下の部分」と右側の ListView の「Afghan Afghani」の上部も同じ赤色で描画されます。
この色の変更は動的な方法で行う必要があります。色は、リストのスクロール中にガラスの長方形の下にあるテキストの部分に対してのみ変更する必要があります。
*OK、EUR および USD は、標準のシアン色ではない特別な通貨です。質問は、少なくとも白い色のテキストについてです。しかし、シアン色も変更できれば最高です。