我正在尝试为 android 开发自定义图像显示应用程序。到目前为止,我能够加载位图并将其显示在屏幕上。我想将用户视图集中在图像的中心。为此,我一直在使用
Bitmap bmp = BitmapFactory.decodeResource(...)
float offsetX = (androidScreenHeight - bitmapFactoryOptions.outHeight) / 2
canvas.drawBitmap(bmp, offsetX, 0, myPaint)
渲染它。据我所知,androidScreenHeight 是正确的。我正在使用具有 1280x800 屏幕的三星笔记,这是我得到的价值。我的图像是 1920 像素宽,所以每边的偏移量应该是 560,实际屏幕中间是 800。看这张图片:
offsetX 的值在 560 处是正确的。所以我知道至少该部分工作正常。但不是上面的,我得到的是:
(这些不是实际图像)
我不确定发生了什么。pixels
在我的 Android 设备上的处理方式与在我的计算机上的处理方式不同吗?我知道每个像素都会占用不同的大小,因为 dpi 是不同的。但是 560 像素的偏移量应该在每个屏幕上给出相同的偏移量,无论单个像素的大小如何。有什么想法吗?