Подтвердить что ты не робот

Как добавить пузыри в текстовый андроид?

В моем приложении я хочу установить пузырьки в текстовое представление, в текстовом представлении я добавляю setBackgroundResource(), как вы можете видеть в коде.

С помощью этого кода я получаю изображение следующим образом:

enter image description here

Я хочу, чтобы изображение формы пузыря выглядело следующим образом:

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
    <solid android:color="#EDF5E4" />
    <corners android:bottomLeftRadius="@dimen/corner_radius"
    android:bottomRightRadius="@dimen/corner_radius"
    android:topLeftRadius="@dimen/corner_radius"
    id:topRightRadius="@dimen/corner_radius" />

Скажите, пожалуйста, как сделать это в моем setBackgroundResource() XML.

4b9b3361

Ответ 1

То, что вам нужно использовать, - это, по сути, 9-патч-образ (как уже указывал Ken Wolf в этом комментарии).

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

Набор изображений с 9 патчами:

mdpihdpixhdpi

(Они называются: bubble_white_normal_mdpi.9, bubble_white_normal_hdpi.9 и bubble_white_normal_xhdpi.9 соответственно. Удалить _mdpi, _hdpi и _xhdpi из имен файлов после размещения их в соответствующих папках drawable.

XML:

<LinearLayout
    android:id="@+id/linlaUserOther"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:baselineAligned="false"
    android:orientation="horizontal"
    android:padding="2dp" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:gravity="top|center" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/imgvwProfileOther"
                android:layout_width="42dp"
                android:layout_height="42dp"
                android:adjustViewBounds="true"
                android:contentDescription="@string/content_desc_user_profile"
                android:scaleType="centerCrop"
                android:src="@drawable/ic_contact_picture" >
            </ImageView>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@drawable/bubble_white_normal"
        android:gravity="top|center"
        android:orientation="vertical" >

        .... // OTHER STUFF HERE THAT IS NOT NECESSARY IN THIS CODE SNIPPET ON SO

    </LinearLayout>
</LinearLayout>

ПРИМЕЧАНИЕ 1:

Несмотря на то, что я включаю в себя рабочий набор изображений (почти при загрузке ложки, если хотите), я настоятельно призываю вас создать свой собственный набор изображений, которые соответствуют вашей схеме вещей. Кроме того, это также позволит вам создавать собственные ресурсы в будущем. Единственная причина, по которой я перехожу на лишнюю милю, - это то, что я лично потерял 3 дня, и я понял, что правильно смотрю и работаю.: - (

ПРИМЕЧАНИЕ 2:

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

Дополнительные сайты (учебники):

Ответ 2

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

Я бы использовал 9-патч png.

http://developer.android.com/reference/android/graphics/NinePatch.html

В принципе вы либо находите/покупаете изображение, либо создаете его в своей любимой программе рисования. Затем вы определяете растяжимые области с помощью draw9patch tool, которые позволяют ему правильно масштабироваться в View.

Вот учебник, он даже специфичен для речевых пузырей!

http://adilsoomro.blogspot.co.uk/2012/11/android-how-to-use-9-patch-png.html

Требуется немного времени, но это важный способ создания более совершенных визуальных интерфейсов.