是否可以使用XML文件中的动画居中图像?

时间:2012-02-13 07:25:11

标签: android xml animation imageview center

使用java代码我没有问题,但我想知道是否可以通过XML动画文件使imageView居中。 实际上,我的ImageView处于线性布局,边缘为100dp,位于屏幕的右上角,所以当我这样做时,图像不是居中的,而是从顶部和右边居中100dp:

<?xml version="1.0" encoding="utf-8"?>
<translate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0%"
    android:toXDelta="-50%p"
    android:fromYDelta="0%"
    android:toYDelta="50%p"
    android:duration="1000" 
    android:fillEnabled="false" 
    android:fillAfter="true">
</translate>

编辑:我的imageView,“cardsPileImage”就在这个布局中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/board_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_margin="100dp"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/cardsPileImage"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:src="@drawable/back"
            android:layout_gravity="right"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:adjustViewBounds="true">
        </ImageView>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_gravity="center"
            android:gravity="center">

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/round_button"
                android:paddingLeft="60dp"
                android:paddingRight="60dp"
                android:textSize="25dp"
                android:text="@string/start_game"
                android:onClick="startGame">
            </Button>

        </LinearLayout>

        <ImageView
            android:id="@+id/discardPileImage"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:src="@drawable/back"
            android:layout_gravity="right"
            android:layout_marginTop="10dp"
            android:layout_marginRight="10dp"
            android:adjustViewBounds="true">
        </ImageView>

    </LinearLayout>

</LinearLayout>

先谢谢你: - )

1 个答案:

答案 0 :(得分:0)

是的,你可以做到这一点。

但为此你必须采取RelativeLayout,因为LinearLayout无法为你的情况做这件事。

为什么要一直使用linearLayout以及所有其他视图?

只需将此xml与您的翻译动画一起使用即可。

的xml:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout     
    xmlns:android="http://schemas.android.com/apk/res/android"     
    android:id="@+id/board_layout"     
    android:layout_width="fill_parent"     
    android:layout_height="fill_parent"     
    android:background="#FFFFFF"     
    android:orientation="vertical">      

    <ImageView             
        android:id="@+id/cardsPileImage"             
        android:layout_width="100dp"             
        android:layout_height="wrap_content"
        android:src="@drawable/icon"             
        android:layout_gravity="right"             
        android:layout_marginTop="110dp"             
        android:layout_marginRight="10dp" 
        android:layout_marginLeft="10dp">         
    </ImageView>

     <Button
        android:layout_below="@+id/cardsPileImage"                 
        android:layout_width="wrap_content"                 
        android:layout_height="wrap_content"                 
        android:background="@drawable/icon"
        android:id="@+id/backButton"                 
        android:paddingLeft="60dp"                 
        android:paddingRight="60dp"                 
        android:textSize="25dp"                 
        android:text="Start Game"                 
        android:onClick="startGame">             
    </Button>          

    <ImageView             
        android:id="@+id/discardPileImage"   
        android:layout_below="@+id/backButton"          
        android:layout_width="100dp"             
        android:layout_height="wrap_content"             
        android:src="@drawable/icon"             
        android:layout_gravity="right"             
        android:layout_marginTop="10dp"             
        android:layout_marginRight="10dp"             
        android:adjustViewBounds="true">         
    </ImageView>      

</RelativeLayout> 

如果不起作用,请告诉我。 :)

<强>更新

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout     
    xmlns:android="http://schemas.android.com/apk/res/android"     
    android:id="@+id/board_layout"     
    android:layout_width="fill_parent"     
    android:layout_height="fill_parent"     
    android:background="#FFFFFF">      

    <RelativeLayout 
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_margin="100dp"
        android:gravity="center"
        android:layout_gravity="center">

        <ImageView             
            android:id="@+id/cardsPileImage"             
            android:layout_width="wrap_content"             
            android:layout_height="wrap_content"
            android:src="@drawable/icon"             
            android:layout_gravity="right"     
            android:layout_alignParentRight="true"        
            >         
        </ImageView>
        <Button
            android:layout_below="@+id/cardsPileImage"                 
            android:layout_width="wrap_content"                 
            android:layout_height="wrap_content"                 
            android:background="@drawable/icon"
            android:id="@+id/backButton"                 
            android:layout_centerInParent="true"
            android:textSize="20dp"                 
            android:layout_margin="10dp"
            android:text="Start Game"                 
            android:onClick="startGame">             
        </Button>          

        <ImageView             
            android:id="@+id/discardPileImage"   
            android:layout_below="@+id/backButton"          
            android:layout_width="wrap_content"             
            android:layout_height="wrap_content"             
            android:src="@drawable/icon"             
            android:layout_gravity="right"    
            android:layout_alignParentRight="true"       
            >         
        </ImageView>      

    </RelativeLayout>
</LinearLayout>