Android 位图缩放以适应不同的屏幕大小/密度

Android 位图缩放以适应不同的屏幕大小/密度,android,screen-resolution,Android,Screen Resolution,我真的不了解所有关于像素密度和设备无关像素的事情,我想知道我是否应该担心这一点 更具体地说,以下是我的应用程序目前的工作方式: 对于“布局屏幕”,我使用的是RelativeLayout或LinearLayout,我从不使用像素或dp,所以我想这在每个设备上都会很好 对于主游戏屏幕,屏幕上只有一个SurfaceView。使用onSurfaceCreated()(像素或dp?我不知道)给出的值,我计算游戏中每个元素的大小和位置,然后加载位图(使用BitmapFactory.decodeResour

我真的不了解所有关于像素密度和设备无关像素的事情,我想知道我是否应该担心这一点

更具体地说,以下是我的应用程序目前的工作方式:

  • 对于“布局屏幕”,我使用的是RelativeLayout或LinearLayout,我从不使用像素或dp,所以我想这在每个设备上都会很好
  • 对于主游戏屏幕,屏幕上只有一个SurfaceView。使用
    onSurfaceCreated()
    (像素或dp?我不知道)给出的值,我计算游戏中每个元素的大小和位置,然后加载位图(使用
    BitmapFactory.decodeResource()
    ,然后使用
    Bitmap.createScaledBitmap()
    ),并使用
    drawBitmap()
    将它们放在屏幕上
我在手机上进行了测试(480) × 800 hdpi)和仿真器(240 × 320 mdpi),两者看起来都不错

我的问题是:

  • 这样做对吗?我不明白如何(以及为什么)使用一些设备是hdpi,而其他设备是mdpi这一事实
  • 我应该为不同的屏幕密度提供不同的位图吗?为什么?(现在我所有的东西都在
    res/drawable hdpi
  • 我的.png应该有多大?我能把它们做得更大吗 ×)大于其预期大小,以确保不会出现模糊或锯齿

    • 我对这方面的知识有限,因为我从未开发过游戏。。就像我想的那样

      这样做对吗?我愿意 我不明白我是如何(为什么)做到的 使用以下事实:某些设备 hdpi和其他都是mdpi

      有了这些信息,您可以自动加载不同的图像。您可以选择以下目录:

      可拉伸hdpi 可抽出式mdpi

      我是否应该为用户提供不同的位图 不同的屏幕密度,为什么? (现在我什么都有了 分辨率/可绘制hdpi)

      如果你有所有的hdpi,那么图像将缩小,我认为,由于缺乏特定的图像的规模较小。提供图像将使您能够更好地控制最终产品,并减少处理成本

      我的.png应该有多大?我可以吗 让它们变得更大(2 ×)比 它们的预期大小,以便 确保这不会看起来模糊或模糊 化名

      我想它们正好是所需要的尺寸。但正如我上面所说。。没有多少经验