2

Snakes and Ladders をプレイするアプリを作成しようとしています (これは私が作成した最初のアプリであり、コースや商業目的などではなく、楽しみのためにやっているだけです)。

だから私の問題は、プレイヤー トークンの ImageView をボード上のある正方形から別の正方形に移動したいということです。次の2つのことを行う方法がわかりません。

  1. トークンのイメージビューをレイアウトのボードイメージビューの上に配置するにはどうすればよいですか?

  2. トークンのイメージビュー自体をボードのイメージビューのサイズの特定の % だけ移動するにはどうすればよいですか? これは可能ですか、それとも他の方法でこれを行うべきですか?

私は、すべて正常に動作するプレーヤー、ボード、および正方形用に作成されたクラスを持っています。プレーヤーのトークンをどうするかを知る必要があるだけです。(サイコロを振るたびにプレイヤーの位置を示すトースト メッセージを表示してテストしました)。

レイアウトの 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>

どんなアドバイスでも大歓迎です。私の問題や何かについて、より具体的にする必要があるかどうか教えてください。

4

1 に答える 1

3

トークンのイメージビューをレイアウトのボードイメージビューの上に配置するにはどうすればよいですか?

両方の 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 width プロパティにアクセスし、それに応じてトークン 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);
于 2013-08-11T12:52:17.127 に答える