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 回答