【发布时间】:2017-09-27 16:34:34
【问题描述】:
我正在尝试为扩展 LinearLayout 的 CustomView 绘制自定义背景。
这是我的 onDraw() 方法:
int mPositionX = 0;
int mPositionY = 0;
final int viewWidth = getMeasuredWidth();
final int viewHeight = getMeasuredHeight();
mPath.moveTo(mPositionX, mPositionY);
mPositionX = viewWidth;
mPath.lineTo(mPositionX, mPositionY);
mPositionY = viewHeight;
mPath.lineTo(mPositionX, mPositionY);
//draw bottom triangles
for(int i = 0; mPositionX >= 0; i++){
mPositionX -= HALF_BORDER_STEP;
mPositionY = i%2 == 0 ? mPositionY - BORDER_HEIGHT : mPositionY + BORDER_HEIGHT;
mPath.lineTo(mPositionX, mPositionY);
}
// move to left bottom corner
mPositionX = 0;
mPath.lineTo(mPositionX,mPositionY);
mPath.close();
canvas.clipPath(mPath);
canvas.drawPath(mPath, mCheckPaint);
super.draw(canvas);
我有两个问题。
首先,如果我不设置任何背景,我的自定义背景不会显示,所以我在我的 xml 中做了 android:background="@color/transparent"。
第二个问题是,在我通过.addView(View view) 添加一些视图后,我的背景消失了。
我试过打电话给invalidate(),但还是没有。
我做错了什么?
【问题讨论】:
标签: java android canvas background android-custom-view