このコードを使用して、drawable を 45 度回転させています。
public static Drawable rotateImage(Context ctx) {
// load the origial Bitmap
Bitmap BitmapOrg = BitmapFactory.decodeResource(ctx.getResources(),
R.drawable.car);
int width = BitmapOrg.getWidth();
int height = BitmapOrg.getHeight();
int newWidth = 90;
int newHeight = newWidth * height / width;
// calculate the scale
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the Bitmap
matrix.postScale(scaleWidth, scaleHeight);
// if you want to rotate the Bitmap
matrix.postRotate(-45);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0,
width, height, matrix, true);
// make a Drawable from Bitmap to allow to set the Bitmap
// to the ImageView, ImageButton or what ever
return new BitmapDrawable(resizedBitmap);
}
問題は、newWidth を指定しても、Drawable のサイズは同じままで、回転した画像が引き伸ばされて見えることです。回転した画像の見栄えを良くするために、ドローアブルが長方形の場合、どうすれば回転できますか?