1

我正在使用游戏卡构建一个应用程序,并且我正在考虑创建一个自定义视图,该视图具有一个带有正面和背面的普通卡片,一旦单击该卡片就会从正面翻转到背面。

我一直在使用Flip3DAnimation 教程教程来实现卡片从前到后的翻转,并且效果很好。但是在应用程序上工作了一段时间后,我发现我的应用程序的下一部分将出现一个严重的问题,即在屏幕上拖放卡片。

今天早上在 freenode 聊天中与 JakeWharton 交谈时,我想我应该创建一个 XML 视图并将其包含在main.xml.

问题是,当我尝试移动包含的视图时,我所做的只是将图像卡在左上角。问题:如何在父视图周围移动包含的 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>

这是我得到的图形布局:

图形布局

4

2 回答 2

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

于 2012-06-03T09:02:44.993 回答
0

最后,我只是创建了一个不同的类来处理卡片,并有一个布局main.xml来在主要活动代码中表示它。

于 2012-06-04T11:27:12.207 回答