今天利用canvas.drawBitmap方法畫圖片的時候發現一個問題,用2.1版本做的時候是居中顯示的,
後來用2.2的時候卻發現同樣的圖片,卻不能居中顯示了。我看了,用的是同一圖片,後來想了想,估
計是與版本有關系,於是就測了下,發現同樣的測試代碼,在2.1版本測出屏幕長和寬為533*320圖片
的長和寬為480*320,2.2版本測出屏幕長和寬為800*480圖片的長和寬為720*480.
看到這個結果我恍然大悟了,因為我的代碼裡是把屏幕的寬度和高度統一寫死為480*320,圖片的
坐標是由屏幕和圖片的寬和高共同決定的,所以導致了這個結果。代碼大概如下:
Paint paint = new Paint(); //畫筆
int screenWidth=480; //屏幕寬度
int screenHeight=320; //屏幕高度
Bitmap bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.bnkjs);//圖片
currentX=screenWidth/2-bm.getWidth()/2; //圖片的X坐標
currentY=screenHeight/2-bm.getHeight()/2; //圖片的Y坐標
canvas.drawBitmap(bm, currentX, currentY, paint);
後來把屏幕的寬度和高度修改為獲取當前屏幕的寬度和高度後就可以正常居中顯示了,代碼如下:
Paint paint = new Paint(); //畫筆
int screenWidth=wm.getDefaultDisplay().getWidth(); //屏幕寬度
int screenHeight=wm.getDefaultDisplay().getHeight(); //屏幕高度
Bitmap bm = BitmapFactory.decodeResource(activity.getResources(), R.drawable.bnkjs);//圖片
currentX=screenWidth/2-bm.getWidth()/2; //圖片的X坐標
currentY=screenHeight/2-bm.getHeight()/2; //圖片的Y坐標
canvas.drawBitmap(bm, currentX, currentY, paint);