Android: выберите местоположение включенного просмотра в формате xml

1

Я создаю приложение с игровыми карточками, и я изучаю создание пользовательского представления, у которого есть обычная карта с фронтальной и задней частью, которая когда-то была нажата, будет перевернута спереди назад.

Я использую учебник по переводу Flip3DAnimation inorder для достижения перевертывания карты спереди назад, и она отлично работает. но после работы над приложением некоторое время я увидел, что в следующей части моего приложения будет серьезная проблема, которая будет перетаскивать карту по экрану.

когда я разговаривал с JakeWharton в чате freenode этим утром, мне показалось, что я должен создать представление 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>

вот что я получаю как графический макет:

графический макет http://oi49.tinypic.com/20fuwsh.jpg

Теги:
android-xml
android-view

2 ответа

0
Лучший ответ

в конце концов я просто создал другой класс для обработки карт и имел макет в main.xml чтобы представить его в основном коде операции.

  • 0
    Разве обходной путь, который я предложил выше, не работал? переопределение layout_width и layout_height в элементе include.
  • 0
    Нет, поскольку include помещает дочерний xml в FrameLayout и это то, что не влияет на включаемый xml-файл.
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 # с9

  • 0
    попробовал, ничего не сделал. :( Я посмотрю в иерархию Viewer
  • 0
    какие-нибудь другие мысли?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню