您需要使用的本质上是一个 9-patch 图像(正如Ken Wolf在此评论中已经指出的那样)。
为了帮助您入门,我包含了一组来自我的一个应用程序的 9 个补丁图像,以及一段简短的代码,说明如何在创建布局 XMl 时使用它。;-)
9 补丁图像集:
(它们分别被命名为: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
您需要看起来像一个语音气泡。
其他网站(教程):
- http://blog.booleanbites.com/2012/12/android-listview-with-speech-bubble.html
- https://github.com/AdilSoomro/Android-Speech-Bubble
- http://developer.android.com/reference/android/graphics/NinePatch.html
- http://developer.android.com/tools/help/draw9patch.html