我正在尝试旋转包含在layer-list
内item
中的bitmap
。layer-list
在 Android XML 文件中定义。我想从 Android 活动内部调整bitmap
的旋转。我知道可以使用Matrix
旋转位图,但是我不确定如何更新XML文件中包含的位图。
到目前为止,我的代码是:
// Inside Activity
Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),
R.drawable.face_line_green);
int width = bitmapOrg.getWidth();
int height = bitmapOrg.getHeight();
Matrix matrix = new Matrix();
matrix.postRotate(10);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
width, height, matrix, true);
// Inside XML
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="6px">
<bitmap android:src="@drawable/face_line_red" android:gravity="center" android:id="@+id/line_red" />
</item>
<item android:left="4px">
<bitmap android:src="@drawable/face_line_green"
android:gravity="center" android:id="@+id/line_green" />
</item>
</layer-list>
您可以使用
RotateDrawable
轻松旋转Bitmap
。因此,执行Bitmap
旋转的最简单方法是将其包装在RotateDrawable
中,该也将包装在您的LayerListDrawable
中。