Как обернуть представления контента, а не рисовать фон? - PullRequest
1 голос
/ 23 августа 2011

Я пытаюсь реализовать Map View balloon для GoogleMaps, но я блокирую с помощью макета всплывающей подсказки.
Размер всплывающей подсказки должен соответствовать размеру контента, однако для него требуется размер фона, который можно нарисовать, поскольку он больше,Поскольку у меня есть довольно большой шарик 9-patch image, предоставленный кем-то другим, содержимое маленького шарика занимает весь экран (размер для рисования).

Я видел этот связанный вопрос: Как обернуть представления содержимого вместо рисования фона? , что именно то, что я хочу, но у него нет правильного ответа (использование FrameLayout делаетта же проблема, потому что ImageView src также примет нарисованный размер, с wrap_content или fill_parent).

Вот мой макет:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:id="@+id/balloon_main_layout"
    android:orientation="horizontal" android:clickable="true"
    android:focusable="true" android:focusableInTouchMode="true"
    android:layout_width="wrap_content" android:background="@drawable/info_bulle_selector">
    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_height="wrap_content" android:layout_width="0dp"
        android:layout_weight="1">
        <TextView android:layout_height="wrap_content"
            android:layout_width="wrap_content" android:text="TextView"
            android:id="@+id/balloon_item_title" android:textColor="#ffffff"></TextView>
    </LinearLayout>
    <ImageView android:id="@+id/balloon_close"
        android:layout_marginLeft="5dp" android:src="@drawable/fermer_selector"
        android:scaleType="fitXY" android:layout_height="30dp"
        android:layout_width="30dp"></ImageView>
</LinearLayout>

Вот экран с тем, что у меня есть (красное пространство должно быть удалено):
Current baloon layout

Если у вас есть идея решить эту проблему (которая часто возникает у меня при создании макетов с фоновым изображением), это было бы здорово.
Заранее спасибо.

РЕДАКТИРОВАТЬ:
Здесь png из девяти патчей: nine-patch balloon

1 Ответ

2 голосов
/ 23 августа 2011

Когда я правильно понимаю вашу проблему, у вас есть два варианта:

1) уменьшить размер изображения из 9 фрагментов, особенно области без растяжения и отступов изображения из 9 фрагментов, поэтомуэто может лучше соответствовать меньшему содержанию.См. Дополнительную документацию здесь: http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

РЕДАКТИРОВАТЬ:

Как я заметил в пункте 1), ваше изображение из 9 патчей было слишком большим.Он имеет размеры 330 пикселей в ширину и 74 пикселей в высоту.Поскольку ваш контент не заполняет всю ширину и высоту фоновых изображений, в вашем макете есть пробелы.

В качестве возможного решения, пожалуйста, уменьшите изображение из 9 патчей.Я сжал ваше изображение до ширины 150 пикселей и высоты до 34 пикселей, и я получил следующий результат:

screen shows 3 balloons with different contents

Вот уменьшенное изображение с 9 участками: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...