2017-06-21 19 views
0

私はAndroidのカードゲームに取り組んでいます。 すべてのプレイヤーカードを表示したいので、4つのLinearLayoutsを作成しました。 トッププレーヤー、左側プレーヤー、右側プレーヤー、およびボトムプレーヤーの場合は1です。ImageViewのLinearLayout内の回転

私はカードに同じ画像を使用しようとしていますし、そのための私はサイドの選手(左と右の選手)のカードを回転させるようにしてみてください。何らかの理由で

は、上部と下部の選手カードがよさそうだが、サイドの選手カードが小さすぎます。

これは私の左のプレーヤーのレイアウトです:

<LinearLayout 
     android:id="@+id/leftParentLayout" 
     android:layout_width="80dp" 
     android:layout_height="200dp" 
     android:orientation="vertical" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintHorizontal_bias="0.026" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.381"> 

     <ImageView 
      android:id="@+id/player_left_card_3" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_weight="1" 
      android:clickable="false" 
      android:paddingBottom="1dp" 
      android:paddingEnd="1dp" 
      android:paddingLeft="1dp" 
      android:paddingRight="1dp" 
      android:rotation="90" /> 

     <ImageView 
      android:id="@+id/player_left_card_5" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_weight="1" 
      android:clickable="false" 
      android:paddingBottom="1dp" 
      android:paddingEnd="1dp" 
      android:paddingLeft="1dp" 
      android:paddingRight="1dp" 
      android:rotation="90" /> 

     <ImageView 
      android:id="@+id/player_left_card_1" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_weight="1" 
      android:clickable="false" 
      android:paddingBottom="1dp" 
      android:paddingEnd="1dp" 
      android:paddingLeft="1dp" 
      android:paddingRight="1dp" 
      android:rotation="90" /> 

     <ImageView 
      android:id="@+id/player_left_card_2" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_weight="1" 
      android:clickable="false" 
      android:paddingBottom="1dp" 
      android:paddingEnd="1dp" 
      android:paddingLeft="1dp" 
      android:paddingRight="1dp" 
      android:rotation="90" /> 

     <ImageView 
      android:id="@+id/player_left_card_4" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_weight="1" 
      android:clickable="false" 
      android:paddingBottom="1dp" 
      android:paddingEnd="1dp" 
      android:paddingLeft="1dp" 
      android:paddingRight="1dp" 
      android:rotation="90" /> 

    </LinearLayout> 

高さは200と幅80である必要がありますが、カードが小さくなっています。 回転の前にカードのサイズが計算されていると思われ、回転が何らかの方法で縮小すると、左のプレーヤーの幅が上部のプレーヤーの幅と同じように見えますが、回転のために大きくなるはずです。

はどうやってカードを回転させるが、その元のサイズでそれらを保つことができますか?おかげさまで ここで

はゲームからのスクリーンショットです。

Screenshot from the game

+0

https://stackoverflow.com/questions/8981845/android-rotate-image-in-imageview-by-an-angle – RonTLV

答えて

0

私は、これは間違っているかもしれないと思う

..私は、カードサイズは回転前に計算されている疑いがある、その後、回転は何とかそれらを縮小します。 Androidは最終的な幅と高さの測定値を計算し、レイアウトに対応します。なぜなら、それは最終的に表示されるものに関係し、それはあなたが言及した特性を指しているからです。

ImageViewようにindivdualカードの幅や高さがwrap_contentまたは両方を与えてみ -

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 

200dpは、すべての5枚のカードの幅プラスあなたが持っているパディング(カードあたり2dp)を収容する必要があり注意してください。 80dpの幅は、カードの高さに加えて2dpの詰め物に対応する必要があります。それ以外の場合は、LinearLayoutに対しては、より高いlayout_widthlayout_heightを与えます。

+0

こんにちは、ご回答ありがとうございました!私はあなたが言ってみましたが、何も – Billy

+0

試し 'アンドロイドを変更していないようだ:layout_width =「wrap_content」 アンドロイド:=「wrap_content」layout_heightを' 'ためLinearLayout'であってもよいですか? –

関連する問題