我有一個繪製在表面上的位圖,每次旋轉設備時都需要調整大小。由於軟按鈕,我用這個代碼來獲得當前尺寸(它似乎工作正常):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