UFO ET IT

Android-XML의 플립 이미지

ufoet 2020. 12. 13. 10:02
반응형

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에서 이미지를 뒤집을 수 있습니까?


ImageView에서 배율 속성 사용

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

다음은 매우 짧고 이해하기 쉬운 솔루션입니다.

이것을 imageView에 추가하십시오.

 android:rotationX="180"

이것은 imageView를 수평으로 뒤집을 것입니다 (left <-> right).

수직의 경우 다음을 입력하십시오.

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>
        </layer-list>
    </item>
</selector>

참고 URL : https://stackoverflow.com/questions/9338447/android-flip-image-in-xml

반응형