我正在构建一个带有游戏卡的应用程序,我正在研究创建一个自定义视图,该视图具有正面和背面的普通卡片,一旦点击就会从前到后翻转。
我一直在使用Flip3DAnimation tutorial教程,以实现从前到后翻转卡片,它完美无缺。但是在使用该应用程序一段时间之后,我发现我的应用程序的下一部分会出现严重问题,即将卡片拖放到屏幕上。
当我今天早上在freenode聊天中与JakeWharton交谈时,我想我应该创建一个XML视图并将其包含在main.xml
中。
卡片代码:
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="108dp"
android:orientation="vertical" >
<ImageView
android:id="@+id/firstImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/c2" />
<ImageView
android:id="@+id/secondImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/back" />
</ViewFlipper>
main.xml
的代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Board"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top"
android:background="@drawable/pinecropped" >
<include
android:id="@+id/firstCard"
android:layout_marginRight="91dp"
android:layout_marginTop="102dp"
layout="@layout/card" />
</FrameLayout>
这是我得到的图形布局:
答案 0 :(得分:2)
在card.xml中更改:
<ImageView
android:id="@+id/firstImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/c2" />
<ImageView
android:id="@+id/secondImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/back" />
要:
<ImageView
android:id="@+id/firstImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/c2" />
<ImageView
android:id="@+id/secondImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/back" />
始终知道您可以使用工具HierarchyViewer来调试此类问题,我猜您会看到这些卡实际上占据了整个屏幕,这也就是他们将其附加到顶部的原因。
更新:
为了覆盖标签中的layout_ *属性,您必须覆盖layout_height和layout_width,请参阅此处的错误和解决方法: http://code.google.com/p/android/issues/detail?id=2863#c9
答案 1 :(得分:0)
最后我创建了一个不同的类来处理卡片,并在main.xml
中设置了一个布局,以便在主要活动代码中表示它。