我正在制作游戏并使用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/