Как добавить пузыри в textview android?

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

В этом коде я получаю как этот образ:

Введите описание изображения здесь

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

Введите описание изображения здесь

 <?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" /> 

Pls расскажет мне, как сделать это в моем XML- setBackgroundResource() .

Solutions Collecting From Web of "Как добавить пузыри в textview android?"

То, что вам нужно использовать, – это, по сути, изображение с 9 патчами ( как уже указывал Кен Вольф в этом комментарии ).

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

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

MDPIИПЧРxhdpi

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

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 вам нужен, как речевой пузырь.

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

  1. http://adilsoomro.blogspot.in/
  2. https://github.com/AdilSoomro/Android-Speech-Bubble
  3. http://developer.android.com/reference/android/graphics/NinePatch.html
  4. http://developer.android.com/tools/help/draw9patch.html

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

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

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

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

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

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

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