我正在制作游戏并使用Surfaceview。
我加载代表字符和背景等的位图。

但是,如何正确缩放它以适合大型设备,小型设备和其他设备?

//西蒙

注意* dpi无法使用,只有像素才能使用画布

最佳答案

您可以实现一个辅助方法,该方法可用于基于设备的dpi请求计算。

根据此qustion的@MitulNakum答案,执行以下操作:

//note that mdpi is the standard
float getAdjustedDimension(float value){
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    switch(metrics.densityDpi){
         case DisplayMetrics.DENSITY_LOW:
              //api 4 and higher
              return 0.75 * value;
         case DisplayMetrics.DENSITY_MEDIUM:
              //api 4 and higher
              return value;
         case DisplayMetrics.DENSITY_HIGH:
              //api 4 and higher
              return value * 1.25;
         case DisplayMetrics.DENSITY_XHIGH
              //api 9 and higher
              return value * 2;
         case DisplayMetrics.DENSITY_TV
              //api 13 and higher
              return value * 1.33125;
    }
}

关于android - Android开发:扩展以适应不同的设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6902463/

10-10 17:47