Android – 在xml中翻转图像

我想在xml中翻转button背景的图像。 我见过如何做到这一点,但它是以编程方式: http : //xjaphx.wordpress.com/2011/06/26/image-processing-image-flipping-mirroring 。 无论如何,我有一个xml文件(button_left_state.xml),如下所示:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <rotate android:fromDegrees="180.0" android:toDegrees="180.0" android:pivotX="50%" android:pivotY="50%" android:drawable="@drawable/buttonrightpressed" /> </item> <item> <rotate android:fromDegrees="180.0" android:toDegrees="0.0" android:pivotX="50%" android:pivotY="50%" android:drawable="@drawable/buttonright"/> </item> </selector> 

但是这个代码只是将图像旋转到180度。 是否有可能在XML中翻转图像?

在ImageView中使用缩放属性

 android:scaleX="-1" //To flip horizontally or android:scaleY="-1" //To flip vertically 

这是一个非常简短易懂的解决scheme。

将此添加到imageView:

  android:rotationX="180" 

这将水平翻转imageView(左< – >右)。

对于垂直,把这个:

 android:rotationY="180" 

例:

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="original image:"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/test"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="flip horizontally :"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:rotationY="180" android:src="@drawable/test"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="flip vertically:"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:rotationX="180" android:src="@drawable/test"/> </LinearLayout> 

结果( JNI库中获取的图像,可以通过JNI完成):

在这里输入图像说明

我使用layer-list解决了我的问题:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item > <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <gradient android:startColor="#9f9" android:centerColor="#000" android:endColor="#0f0" android:angle="-90" /> <stroke android:width="1.0px" android:color="#444" /> <corners android:bottomRightRadius="7dip" android:bottomLeftRadius="0.1dp" android:topLeftRadius="0.1dp" android:topRightRadius="7dip"/> </shape> </item> <item> <rotate android:fromDegrees="180.0" android:toDegrees="180.0" android:pivotX="50%" android:pivotY="50%" android:drawable="@drawable/arrow_right" /> </item>