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 に答える