我有一个绘制在表面上的位图,每次旋转设备时都需要调整大小。由于软按钮,我用这个代码来获得当前尺寸(它似乎工作正常):Android surfaceChanged宽度/高度值不正确
public void getCanvasXY(){
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion >= android.os.Build.VERSION_CODES.HONEYCOMB_MR2){
// HoneyComb 3.2 and up
DisplayMetrics metrics = new DisplayMetrics();
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics);
Global.CanvasX = metrics.widthPixels;
Global.CanvasY = metrics.heightPixels;
} else{
// before HoneyComb
Global.CanvasX = getWidth();
Global.CanvasY = getHeight();
}
}
我想重新计算的尺寸和创建我的位图()最好的地方是surfaceChanged。
@Override
public void surfaceChanged(SurfaceHolder holder1, int format, int width, int height) {
getCanvasXY();
LoadBMP();
}
我看到这个叫不止一次,我也得到了CanvasX和设备的同时旋转CanvasY diferent值。最后一次调用工作正常,但我看到onDraw()如何绘制我的位图,精灵调整不好,最后确定。这是一个丑陋的影响。 如何解决这个问题? 谢谢
请将“heigth”拼写为“height”,以便正确指出此问题。 – 2012-02-07 16:24:30