2011-09-06 50 views
0

我试图旋转bitmap,它包含在layer-list内的item中。 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> 

回答

0

您可以使用RotateDrawable轻松旋转Bitmap。因此,执行Bitmap轮换的最简单方法是将其包装在RotateDrawable中,该程序也将包装在您的LayerListDrawable中。

+0

感谢您的帮助,但我仍然有点卡住。所以我设置XML如下: \t \t \t'? 然后我如何在主Activity中使用'RotateDrawable'改变旋转角度? – BGM

+0

你需要改变你的'Drawable'的当前等级(通过'setLevel') –