如何在Android中将位图居中对齐到画布?

18

我在画布上有一个位图,我需要将它对齐到画布的中心(图片的中心应该在画布的中心)。在纵向视图下,如何适当地缩放画布和图像以适应分辨率?

    public void onDraw(Canvas canvas) {
    Bitmap imgtable = BitmapFactory.decodeResource(getResources(), R.drawable.table_01);
    canvas.drawColor(Color.TRANSPARENT);
    canvas.drawBitmap(imgtable, 10, 10, null);

    }

值得注意的是,在这个相关问题中提出的解决方案(https://dev59.com/bV3Ua4cB1Zd3GeqP-0XQ)。 - Dr1Ku
我曾经遇到同样的问题,这个答案帮了我:https://dev59.com/bV3Ua4cB1Zd3GeqP-0XQ#8143775 - waseem
1个回答

56

虽然我不知道在Android中获取画布宽度和位图宽度的具体方法,但通常将一个位图置于中心的方法如下:

centreX = (canvasWidth  - bitmapWidth) /2

centreY = (canvasHeight - bitmapHeight) /2

然后将您的图像放置在centerX、centerY处。


但在我的情况下,存在一个问题。也就是说,我的图像适合横向模式,但在纵向模式下,图像会溢出屏幕。 - KIRAN K J
@KIRANKJ,你解决了这个问题吗?我也遇到了同样的问题。 - Akhilesh Sk
当您旋转设备时,可能需要重新计算宽度和高度,使宽度变为高度,高度变为宽度。 - mbwasi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接