nine medium custom attrs android android-intent android-custom-view nine-patch

medium - ¿Cómo agregar las burbujas a textview android?



drawing view android (2)

Creo que va a ser difícil tratar de hacerlo usando solo formas dibujables.

Yo usaría un png de 9 parches.

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

Básicamente, puede encontrar / comprar una imagen o crear una en su programa de dibujo favorito. Luego, define las regiones extensibles utilizando la http://developer.android.com/tools/help/draw9patch.html que le permite escalar adecuadamente en su View .

Aquí hay un tutorial, ¡incluso es específico para burbujas de discurso!

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

Lleva un poco de tiempo, pero es una técnica crucial para crear interfaces visuales más diseñadas.

En mi aplicación, quiero establecer burbujas en una vista de texto, en la vista de texto agrego el setBackgroundResource() como se puede ver en el código.

Con este código estoy obteniendo una imagen como esta:

Quiero una imagen de forma de burbuja como esta:

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

Por favor, dime cómo hacer esto en mi setBackgroundResource() XML.


Lo que necesitas usar es esencialmente una imagen de 9 parches ( como ya lo señaló Ken Wolf en este comentario ).

Para comenzar, estoy incluyendo un conjunto de imágenes de 9 parches de una de mis aplicaciones junto con un breve fragmento de código sobre cómo usarlo al crear un diseño XMl. ;-)

El conjunto de imágenes de 9 parches:

(Estos se denominan: bubble_white_normal_mdpi.9 , bubble_white_normal_hdpi.9 y bubble_white_normal_xhdpi.9 respectivamente. Elimine _mdpi , _hdpi y _xhdpi de los nombres de archivo después de colocarlos en sus respectivas carpetas drawable .

El 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>

NOTA 1:

Aunque estoy incluyendo un conjunto de imágenes de trabajo ( si lo prefiere, casi con la cuchara ), le insto encarecidamente a que cree su propio conjunto de imágenes que se ajuste a su esquema de cosas. Además, esto también lo equipará para construir sus propios recursos en el futuro. La única razón por la que estoy haciendo un esfuerzo adicional es porque personalmente perdí 3 días para que el bocadillo funcione correctamente. :-(

NOTA 2:

Estoy configurando la imagen como fondo para un LinearLayout . Sin embargo, tendrá que configurarlo en el TextView que necesita para que se TextView como una burbuja de discurso.

Sitios Adicionales (Tutoriales):

  1. http://blog.booleanbites.com/2012/12/android-listview-with-speech-bubble.html
  2. https://github.com/AdilSoomro/Android-Speech-Bubble
  3. developer.android.com/reference/android/graphics/NinePatch.html
  4. http://developer.android.com/tools/help/draw9patch.html