Android - флип-изображение в xml
Я хочу перевернуть изображение для фона кнопки в xml. Я видел пример, как это сделать, но это было программно: 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?
Ответы
Ответ 1
Я решаю свою проблему, используя 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>
</layer-list>
</item>
</selector>
Ответ 2
Используйте атрибуты шкалы в ImageView
android:scaleX="-1" //To flip horizontally or
android:scaleY="-1" //To flip vertically
Ответ 3
Здесь очень короткое и понятное решение.
Добавьте это в изображение:
android:rotationX="180"
Это будет переворачивать изображениеView горизонтально (слева ↔ справа).
Для вертикали, поставьте это:
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):
![введите описание изображения здесь]()