如题,我在photoshop上做了一张图片是png的,大小为宽为300像素,高为154像素。然后我在android模拟器上显示出来,结果是完整的。但我获取器图片的大小是却和实际的不一样。为什么呢?附上代码:
public GameView(Context context) {
super(context);
// TODO Auto-generated constructor stub
Resources res = context.getResources();
bitmap = BitmapFactory.decodeResource(res,R.drawable.battlecity);
ControlPad = BitmapFactory.decodeResource(res,R.drawable.joystick);
setFocusable(true);
} @Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
Paint paint = new Paint();
paint.setColor(Color.WHITE);
super.onDraw(canvas);
canvas.drawText("坦克大战",50,50,paint);
h = canvas.getHeight();
w = canvas.getWidth();
System.out.println("h = "+h+"w = "+w);
System.out.println("pic w = "+ControlPad.getWidth()+"pic h = "+ControlPad.getHeight());
canvas.drawBitmap(bitmap,x,y,new Paint());
canvas.drawBitmap(ControlPad,ControlPad_x,ControlPad_y,new Paint());
}

解决方案 »

  1.   

    原来是因为把图片放在drawable-hdpi里导致的
    把图片放drawable-ldpi和drawable-mdpi就没问题了
      

  2.   

    是分辨率的不同,H是高分辨率 M是中 L是低。
    drawable- hdpi、drawable- mdpi、drawable-ldpi的区别: 
    (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854) 
    (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480) 
    (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
      

  3.   

    不同手机上的Bitmap的Density属性不同,同一张图片在不同的手机上的bitmap的width和height是不一样的,和Density有关。