我正在尝试编写一个应用程序来玩Snakes and Ladders(这是我写过的第一个应用程序,我只是为了好玩而做的...不是用于课程或商业目的或任何东西)
所以我的问题是,我想将玩家令牌的ImageView从棋盘上的一个方块移动到另一个方块。我不知道如何做两件事:
如何将令牌的imageview放置在布局中的棋盘图像视图顶部?
如何将令牌imageview本身移动到电路板imageview的一定大小的百分比?这是可能的还是我应该以其他方式做到这一点?
我为玩家,棋盘和方块编写的课程都很好。我只需要知道如何处理玩家的令牌。 (我已经通过在每次掷骰子时显示一个告诉玩家位置的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'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>
非常感谢任何建议。如果我应该在我的问题或任何事情上更具体,请告诉我。
答案 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);