15

わかりました、これが取引です。拡張ギャラリークラスのアイテムを移動して、画像の順序を変更したい。私が今それをしている方法:

  • 長押しすると、現在選択されているアイテムが削除されます。
  • onDraw()同じ画像を描画するために使用して、を使用して画像を移動できるようにしますonTouchEvent()
  • リリース時にアイテムを再度追加します

これは正常に機能しますが、問題は、このonDraw()メソッドを使用すると、ギャラリーアイテムの背後に画像が描画されることです。描かれるものの優先順位を変更する方法はありますか?

4

1 に答える 1

41

まったく違う方向に進んだ後、これを見つけました= /

同じ問題を抱えている人のための解決策は次のとおりです。

コンストラクター(またはコンポーネントを初期化する他の場所)で、を設定setWillNotDraw(false)してオーバーライドしますdispatchDraw()dispatchDraw()子を描画するViewGroupので、他のビューの後ろに描画するか、上に描画するかを自分で決めることができます。

ギャラリービュー(およびその子ビュー)の上にあるカスタム図面からの例

@Override
protected void dispatchDraw(Canvas canvas) {
    super.dispatchDraw(canvas);

    // do your drawing stuff here
    canvas.drawPath(mPath,mPaint);
}
于 2011-02-02T08:01:31.263 に答える