2014-02-24 19 views
1

下面代码工作的代码只在装置宽度范围宽度> 400与宽度< 550而不是其它设备,如选项卡(宽度> 550)。如何我可以概括无法一概而论速度计

speedo_meter = getImage(R.drawable.newmagnetometer_final_480); 
center_wheel = getImage(R.drawable.center_wheel480); 
needle = getImage(R.drawable.arrow480); 
canvas.drawBitmap(speedo_meter, (canvas.getWidth()/2)- speedo_meter.getWidth()/2,  (canvas.getHeight()/2)- speedo_meter.getHeight()/2, null); 


// Main Meter Needle 

matrix_needle = new Matrix(); 
matrix_needle.setTranslate((canvas.getWidth()/2)- needle.getWidth() ,(canvas.getHeight()/2)- needle.getHeight()); 
matrix_needle.postRotate(angle_of_deviation,canvas.getWidth()/2, 2 * needle.getHeight() - 10); 
canvas.drawBitmap(needle, matrix_needle, paint_needle); 

// Main Meter Wheel 
canvas.drawBitmap(center_wheel, (canvas.getWidth()/2)- center_wheel.getWidth()/2,  (canvas.getHeight()/2)- center_wheel.getHeight()/2, null); 

上传图像抓获标签 I want create code for device independent I create code but it work on particular height and width devices but not on all like Tab

回答

1

您需要更改像

protected void onDraw(Canvas canvas) { 


    canvas.drawBitmap(speedo_meter, (canvas.getWidth()/2)- speedo_meter.getWidth()/2, 
      (canvas.getHeight()/3)- speedo_meter.getHeight()/2, null); 


     // Main Meter Needle 
     matrix_needle = new Matrix(); 
     matrix_needle.setTranslate((canvas.getWidth()/2)- needle.getWidth()/2, 
       (canvas.getHeight()/3)- needle.getHeight()); 


     matrix_needle.postRotate(110, 
       canvas.getWidth()/2, (canvas.getHeight() /(float)2.9)); 

     canvas.drawBitmap(needle, matrix_needle, paint_needle); 

} 

你的代码只需更改与相应的设备宽度图像和高度。

+0

这是工作谢谢拉娜 –