我正在开发Android卡游戏。 我想显示所有玩家卡片,所以我创建了4个LinearLayouts。 1为顶级球员,左侧球员,右侧球员和底部球员。
我正在尝试使用相同的图像作为卡片,因此我尝试旋转侧面球员(左右球员)的牌。
出于某种原因,顶级和底级球员牌看起来不错,但是侧面球员牌太小了。
这是我的左侧球员布局:
<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,但卡片较小。 我怀疑在旋转之前计算了卡的大小,然后旋转会以某种方式缩小它们,看起来左边玩家的牌宽与顶级玩家的宽度相同,但由于旋转它应该更大。 / p>
如何旋转卡片,但保持原始尺寸? 感谢。
以下是游戏的截图。
答案 0 :(得分:0)
我怀疑卡片尺寸是在旋转之前计算的,然后旋转会以某种方式收缩它们。
我认为这可能是错的。 Android计算最终的宽度和高度测量值并适应布局。因为它关注的是它最终显示的内容,它引用了你提到的属性。
尝试wrap_content
的{{1}}中的个人卡片的宽度或高度或两者都给予ImageView
-
android:layout_width="wrap_content"
android:layout_height="wrap_content"
另请注意200dp
应该容纳所有5张卡片宽度加上您拥有的填充(每张卡2dp
)。并且80dp
宽度应该适应卡的高度加上2dp
填充。否则为layout_width
提供更高的layout_height
和LinearLayout
。