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 に答える