Android位图坐标奇怪

标签 android

我正在尝试为 android 开发自定义图像显示应用程序。到目前为止,我能够加载位图并将其显示在屏幕上。我想将用户 View 集中在图像的中心。为此,我一直在使用

Bitmap bmp = BitmapFactory.decodeResource(...)
float offsetX = (androidScreenHeight - bitmapFactoryOptions.outHeight) / 2
canvas.drawBitmap(bmp, offsetX, 0, myPaint)

渲染它。据我所知,androidScreenHeight 是正确的。我正在使用具有 1280x800 屏幕的三星笔记本,这是我为此获得的值(value)。我的图像是 1920 像素宽,所以每边的偏移量应该是 560,实际屏幕的中间是 800。看这张图:

! http://imgur.com/a2DGmjG

offsetX 的值在 560 处是正确的。所以我知道至少那部分工作正常。但是我得到的不是上面的,而是这样的:

! http://imgur.com/jtHw926

(这些不是实际图像)

我不确定发生了什么。 pixels 在我的 android 设备上与在我的计算机上是否以某种方式不同对待?我知道每个像素都会占用不同的大小,因为 dpi 不同。但是 560 像素的偏移量应该在每个屏幕上提供相同的偏移量,而不管各个像素的大小。知道这里发生了什么吗?

最佳答案

(将我的评论提升为正确答案)

BitmapFactory 将在该文件夹的 dpi(假设您有一个)和设备 dpi 之间执行缩放。将位图放在“drawable-nodpi”中将禁用自动缩放,但要小心你真的想这样做(因为自动缩放通常是有用和可取的)。

关于Android位图坐标奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18061301/

相关文章:

android - Google map Android 应用中标记的缩放效果

java - 不幸的是该应用程序已停止

android - 刷新小部件时每个对象都被销毁了吗?

android - 将 roottools.jar 导入 Android Studio

Android:画廊像滑动效果

android - Android Studio无法在模拟器上安装应用

java - android studio 数据库应用程序崩溃而没有错误

Android onNewIntent() 通知未正确执行

java - Android HttpURLConnection POST 不工作

java - 向android数据库中输入数据