【发布时间】:2015-07-21 18:21:00
【问题描述】:
我编写了战舰之类的游戏。当玩家通过放置一个 imageView(一艘船)将一艘船放在运动场上时,我希望能够通过稍后放置一个 imageView 来标记这艘船被击中。
这是我目前的布局(配置船只的设置):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:weightSum="1"
android:background="@drawable/background_blue"
android:layout_gravity="top|center_horizontal" >
<ImageView
android:id="@+id/imageSetzeSchiffe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|top"
android:src="@drawable/image_schiffe_setzen"
android:contentDescription="@string/startscreen"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
</ImageView>
<ImageView
android:id="@+id/imagePlayfield"
android:layout_width="300dp"
android:layout_height="280dp"
android:src="@drawable/image_playfield"
android:contentDescription="@string/startscreen"
android:layout_gravity="left|bottom"
android:layout_below="@+id/imageSetzeSchiffe"
android:layout_alignParentLeft="true"/>
<ImageButton
android:id="@+id/buttonDrehen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_drehen"
android:contentDescription="@string/startscreen"
android:layout_gravity="center"
android:layout_alignBottom="@+id/imagePlayfield"
android:layout_toRightOf="@+id/imagePlayfield"
android:layout_marginLeft="24dp"/>
<ImageButton
android:id="@+id/buttonPlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_play"
android:contentDescription="@string/startscreen"
android:layout_gravity="center"
android:layout_alignBottom="@+id/buttonTurn"
android:layout_toRightOf="@+id/imageShipCarrier"/>
<ImageView
android:id="@+id/imageShipCarrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_ship_carrier"
android:contentDescription="@string/startscreen"
android:layout_gravity="center"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/buttonDrehen"/>
<ImageView
android:id="@+id/imageShipCruiser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_ship_cruiser"
android:contentDescription="@string/startscreen"
android:layout_gravity="center"
android:layout_alignTop="@+id/imagePlayfield"
android:layout_toLeftOf="@+id/imageShipGunboat"
android:layout_marginRight="31dp"
android:layout_marginTop="19dp"/>
<ImageView
android:id="@+id/imageShipGunboat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_ship_gunboat"
android:contentDescription="@string/startscreen"
android:layout_gravity="center"
android:layout_alignTop="@+id/imageShipCruiser" android:layout_alignRight="@+id/buttonSpielen"
android:layout_alignEnd="@+id/buttonSpielen"/>
<ImageView
android:id="@+id/imageShipSubmarine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_ship_submarine"
android:contentDescription="@string/startscreen"
android:layout_gravity="center"
android:layout_above="@+id/buttonSpielen" android:layout_alignRight="@+id/buttonSpielen"
android:layout_alignEnd="@+id/buttonSpielen"/>
<ImageView
android:id="@+id/imageShipSpeedboat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/image_ship_speedboat"
android:contentDescription="@string/startscreen"
android:layout_gravity="center"
android:layout_below="@+id/imageShipCruiser" android:layout_alignLeft="@+id/imageShipCruiser"
android:layout_alignStart="@+id/imageShipCruiser"/>
</RelativeLayout>
对于拖放,我使用 touchListener(用于被点击的船只)和 dragListener 用于放置区域(此处:imagePlayfield)。
我以后如何加载另一个 imageView(不在 xml/布局中)并将其放在正在设置的船上?
【问题讨论】:
-
imageView 已被用户定位,我试图找出它被丢弃的位置。那么您声明的解决方案/链接是否反映了应该放置另一个 imageView 的 imageView 是否已经实例化?
-
@TheHungryAndroider 谢谢!如何在同一个 imageView 上多次设置这些可绘制对象?由于一艘船在沉没之前可能会受到多次撞击,因此 imageView 需要将多个图像作为图层。如何设置图层的坐标?
-
您可以继续在彼此之上创建 LayerDrawables
-
我怎样才能改变被放在另一个图像之上的图像的大小或影响确切的位置?当我合并两张图片时,第二张被拉伸到另一张上,失去了原来的大小。
标签: android drag-and-drop imageview android-relativelayout