在我的应用程序中,我想将气泡设置为文本视图,在文本视图中我添加了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" />
请告诉我如何在我的setBackgroundResource()
XML中进行此操作。
答案 0 :(得分:31)
您需要使用的内容基本上是一个9补丁图片(正如 Ken Wolf 在此评论中已经指出的那样)。
为了帮助您入门,我在其中一个应用程序中包含了一组9补丁图像,以及在创建布局XMl时如何使用它的简短代码。 ; - )
9补丁图像集
(分别命名为bubble_white_normal_mdpi.9
,bubble_white_normal_hdpi.9
和bubble_white_normal_xhdpi.9
。删除 _mdpi , _hdpi <将/ strong>和 _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
,您需要看起来像一个语音泡沫。
其他网站(教程):
答案 1 :(得分:1)
我认为你将很难尝试使用形状绘图来做到这一点。
我会使用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
这需要一些时间,但它是制作更多设计视觉界面的关键技术。