当前位置:操作系统 > 安卓/Android >>

android不同版本 分辨率不一样,同一图片测出的长和宽也不一样!获取屏幕的宽和高

  今天利用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);
 
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,