我制作了具有复杂背景的自定义视图,它由两个元素组成:顶部 - 位图可绘制,下方为 9 路径可绘制。
我的代码是:
public class MyCustomFrame extends FrameLayout
{
Drawable main, top;
public RequestInfoBottomContainer(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
main = res.getDrawable(R.drawable.bg_main);
top = res.getDrawable(R.drawable.bg_top);
}
@Override
protected void onDraw(Canvas canvas)
{
int width = getMeasuredWidth();
int height = canvas.getHeight();
top.setBounds(0, 0, width, top.getIntrinsicHeight());
main.setBounds(0, top.getIntrinsicHeight(), width, height);
top.draw(canvas);
main.draw(canvas);
}
}
例如,如果顶部可绘制高度为 10 像素,宽度为 500 像素,高度为 200 像素,我将边界 0、10、500、200 设置为主要可绘制对象 Android 将其绘制为 0、0、500、200 边界。即主要绘制在顶部。
我做错了什么?