2014-02-24 21 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

這是工作謝謝拉娜 –