2013-07-09 10 views
17

In meiner Anwendung möchte ich Blasen zu einer Textansicht setzen, in der Textansicht füge ich die setBackgroundResource() hinzu, wie Sie im Code sehen können.Wie fügt man die Textblasen zu Textview Android hinzu?

Mit diesem Code ich erhalte ein Bild wie folgt aus:

enter image description here

Ich möchte eine Blasenform Bild wie folgt aus:

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

Bitte sag mir, wie ich das machen soll ist in meinem setBackgroundResource() XML.

+2

würde ich einen 9-Patch png verwenden. http://developer.android.com/reference/android/graphics/NinePatch.html –

Antwort

30

Was müssen Sie verwenden, ist im Wesentlichen ein 9-Patch-Bild (Wie bereits von Ken Wolf in diesem Kommentar darauf hingewiesen).

Um Ihnen den Einstieg zu erleichtern, schließe ich eine Reihe von 9-Patch-Bildern aus einer meiner Apps zusammen mit einem kurzen Code zur Verwendung beim Erstellen eines Layout-XMl ein. ;-)

Das 9-Patch-Bild Set:

mdpi hdpi xhdpi

(Diese werden genannt:. bubble_white_normal_mdpi.9, bubble_white_normal_hdpi.9 und bubble_white_normal_xhdpi.9 bzw. entfernen die _mdpi, _hdpi und _xhdpi von der Dateinamen, nachdem Sie sie in ihre jeweiligen Ordner drawable gelegt haben.

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

Anmerkung 1:

Obwohl, ich bin auch eine der Bilder Workingset (fast Fütterlöffel, wenn man so will), würde ich stark Ich fordere Sie auf, Ihre eigenen Bilder zu erstellen, die in Ihr Schema der Dinge passen. Außerdem können Sie damit in Zukunft Ihre eigenen Ressourcen aufbauen. Der einzige Grund, warum ich gehe die extra Meile ist, weil ich persönlich verlor 3 Tage bekommen die Sprechblase suchen und arbeiten richtig. :-(

ANMERKUNG 2:..

ich als Hintergrund zu einem LinearLayout das Bild bin Einstellung Sie, jedoch müssen sie auf die TextView Sie wie eine Sprechblase uns brauchen

Weitere Webseiten (Tutorials):

  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
1

Ich denke, Sie werden es schwer haben, es nur mit Form-Zeichen zu tun.

Ich würde ein 9-Patch-Png verwenden.

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

Grundsätzlich entweder Sie finden/ein Bild kaufen oder in Ihrem Lieblingszeichenprogramm erstellen. Dann definieren Sie die dehnbaren Bereiche mit dem draw9patch tool, die es ermöglichen, in Ihrem View richtig zu skalieren.

Hier ist ein Tutorial, es ist sogar speziell für Sprechblasen!

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

Es dauert ein wenig Zeit, aber es ist eine wichtige Technik mehr entwickelt visuelle Schnittstellen zu machen.

Verwandte Themen