You need to change your code like
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);
}
Just change Images with respective Device Width and Height.