0

我有一个 ImageView 子类,它应该在显示图像的下角显示一个徽标。我有这个 onDraw 代码来在图像顶部绘制图标。它在 ICS+ 上运行良好,但没有更低。有谁知道这是什么原因?

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

    int canvasHeight = canvas.getHeight();
    int canvasWidth = canvas.getWidth();

    Drawable icon = getResources().getDrawable(R.id.icon);

    int width = icon.getIntrinsicWidth();
    int height = iconcon.getIntrinsicHeight();

    int x = canvasWidth - width - PADDING;
    int y = canvasHeight - height - PADDING;

    icon.setBounds(x, y, canvasWidth - PADDING, canvasHeight - PADDING);
    icon.draw(canvas);
}
4

1 回答 1

1

您可能想忽略canvas.getWidth()canvas.getHeight()使用接收到的值onSizeChanged(int w, int h, int oldw, int oldh),因为有时它们不匹配并canvas.getWidth()/getHeight()给出奇怪的结果。

于 2012-10-29T09:22:09.110 回答