我有一个自定义ViewGroup
的顶部添加孩子在那里我重写它dispatchDraw
和绘制一些额外的Path
S的看起来是这样的:的Android ViewGroup中的所有图纸
@Override
public void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas);
canvas.setMatrix(matrix);
mRegions.clear();
canvas.drawPicture(mPicture);
if (drawShader) {
canvas.drawBitmap(mShader, 0, 0, mBitmapPaint);
}
for (int i = 0; i < mPaths.size(); i++) {
if (mIndex != -1 && mIndex == i) {
canvas.save();
canvas.drawRect(mRect, mPaint);
drawPaths(canvas, mPaths.get(i));
canvas.clipPath(mPaths.get(i), Region.Op.INTERSECT);
canvas.drawColor(mOverlayColor);
Rect f = mRegions.get(i).getBounds();
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.STROKE);
canvas.drawCircle(f.centerX() - mRadius, f.centerY() - mRadius, mRadius, mPaint);
canvas.restore();
} else {
drawPaths(canvas, mPaths.get(i));
}
}
}
现在,这是我想要的东西就是加一个孩子将被放置在这些东西上绘制dispatchDraw
。现在我这样做:
mBalloon = LayoutInflater.from(getContext()).inflate(R.layout.map_balloon, null);
LayoutParams params = new LayoutParams(500, 150);
mBalloon.setLayoutParams(params);
addView(mBalloon);
bringChildToFront(getChildAt(0));
我
init()
方法
被称为在我ViewGroup
的构造,其结果是,在dispatchDraw
画都放在上面mBalloon
。
任何想法如何将我的View - mBalloon
放在dispatchDraw
以上的东西上面?
在此先感谢!
您是否尝试在自定义绘图之后调用drawChild? – pskink