在Android上移动ImageView

时间:2013-08-11 12:47:57

标签: java android xml imageview

我正在尝试编写一个应用程序来玩Snakes and Ladders(这是我写过的第一个应用程序,我只是为了好玩而做的...不是用于课程或商业目的或任何东西)

所以我的问题是,我想将玩家令牌的ImageView从棋盘上的一个方块移动到另一个方块。我不知道如何做两件事:

  1. 如何将令牌的imageview放置在布局中的棋盘图像视图顶部?

  2. 如何将令牌imageview本身移动到电路板imageview的一定大小的百分比?这是可能的还是我应该以其他方式做到这一点?

  3. 我为玩家,棋盘和方块编写的课程都很好。我只需要知道如何处理玩家的令牌。 (我已经通过在每次掷骰子时显示一个告诉玩家位置的Toast消息来测试它。)

    以下是布局的xml代码:

     <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" 
        android:background="@drawable/stripes_background"
        android:orientation="vertical" >
    
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dip"
            android:layout_gravity="center"
            android:layout_marginTop="0dp"
            android:layout_weight="0.1"
            android:orientation="horizontal" >
    
            <Button
                android:id="@+id/toGameListButton"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.00"
                android:background="@drawable/alternate_button_background"
                android:text="Quit"
                android:textColor="#FFFFFF"
                android:textSize="17sp" />
    
            <Button
                android:id="@+id/restartButton"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1.00"
                android:background="@drawable/alternate_button_background"
                android:text="Restart"
                android:textColor="#FFFFFF"
                android:textSize="17sp" />
        </LinearLayout>
    
        <TextView
            android:id="@+id/textViewTurn"
            android:layout_width="match_parent"
            android:layout_height="0dip"
            android:gravity="center"
            android:layout_weight="0.1"
            android:text="TextView set to Player&apos;s turn"
            android:textColor="#FF9900"
            android:textSize="19sp"
            android:textStyle="bold" />
    
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="0dip"
            android:layout_weight="0.7" >
    
            <ImageView
                android:id="@+id/game_board"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:contentDescription="Board"
                android:src="@drawable/snakes_and_ladders_raw_board" />
    
            <ImageView
                android:id="@+id/green_indicator"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    
        </FrameLayout>
    
        <Button
            android:id="@+id/rollButton"
            android:layout_width="match_parent"
            android:layout_height="0dip"
            android:layout_marginTop="10dp"
            android:layout_weight="0.1"
            android:background="@drawable/alternate_button_background"
            android:text="Roll!"
            android:textColor="#FFFFFF"
            android:textSize="19sp" />
    
    </LinearLayout>
    

    非常感谢任何建议。如果我应该在我的问题或任何事情上更具体,请告诉我。

1 个答案:

答案 0 :(得分:3)

  

如何将令牌的图像视图放在电路板顶部   在布局中的imageview?

您可以简单地将两个ImageView放入RelativeLayout,然后确保令牌的ImageView位于电路板的ImageView下方(在代码中)。

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/game_board"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:contentDescription="Board"
            android:src="@drawable/snakes_and_ladders_raw_board" />

        <!-- views below in code will be on top -->
        <ImageView
            android:id="@+id/green_indicator"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </RelativeLayout>
  

如何将令牌imageview本身移动一定的%   电路板imageview的大小?这是可能的还是我应该的   以其他方式做到这一点?

您可以访问BoardView宽度属性并相应地为令牌ImageView设置动画。

ImageView board = (ImageView) findViewById(R.id.board);
ImageView token = (ImageView) findViewById(R.id.token);

// animates the token imageview to the right side by 50% of the boardimageviews width
token.animate().x(board.getWidth() / 2).setDuration(500);