android で、その境界内に表示されている下のすべてにカラーフィルターを適用する方法でビューを設定することは可能ですか? この例のように:
その下のすべての色を反転する単純な長方形のビュー。もちろん、ユーザーがリストをスクロールすると、反転したボックスにも反映されます。カラーフィルター、PorterDuff モードなどを使用して簡単に行う方法はありますか?
android で、その境界内に表示されている下のすべてにカラーフィルターを適用する方法でビューを設定することは可能ですか? この例のように:
その下のすべての色を反転する単純な長方形のビュー。もちろん、ユーザーがリストをスクロールすると、反転したボックスにも反映されます。カラーフィルター、PorterDuff モードなどを使用して簡単に行う方法はありますか?
これが私がすることです:
ビューの階層:
InverterView は、onTouchListener の親ビュー (RelativeLayout) の OnTouch によって配置されます。
if (event.getAction() == MotionEvent.ACTION_MOVE)
// Set Coordinates for the custom View.
// Copy the bitmapCache of the ListView (jsut the portion you need
// and send it to the customView.
// Apply the filters you want.
// Invalidate!
このメソッドを使用して拡大鏡を実装しました。それは魅力のように機能します。後でもう少しコードを投稿できるかもしれませんが、現時点では少し忙しいです。
ここで私が正しいかどうかわからないので、簡単にコメントできればそうします。バイヤーは注意してください、ここに行きます:
View.OnDragEve[]ntListener を利用することで、この効果を実現できるのではないかと思います。これがドキュメントです。
Android で使用されているドラッグ アンド ドロップ トリガー モデル (つまり、アプリと OS 間の通信手段) を微調整する必要があると思います。それをどのように微調整するかは、あるビューを別のビューの境界に強制するアプリ内のメカニズムに完全に依存します。それがわかったら、 ColorMatrix、PorterDuffColorFilter 、およびその他のいくつかを使用して、高度なカラー マジックを実行できます 。
これは、代替のXfermodeよりもはるかに簡単に思えます。幸運を!