如何将气泡添加到textview android?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

在我的应用程序中,我想将气泡设置为文本视图,在我添加的文本视图中,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中做到这一点呢?

提问于
用户回答回答于

为了让你开始使用,我在其中一个应用程序中添加了一组9-patch图像,以及创建布局XMl时如何使用它的一段简短代码:

9补丁图像集:

(这些被命名为:bubble_white_normal_mdpi.9bubble_white_normal_hdpi.9bubble_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>

用户回答回答于

我认为你将很难尝试使用形状绘图来做到这一点。

我会使用9-patch png:

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

基本上你可以找到/购买一个图像或在你最喜欢的绘图程序中创建一个图像。然后你使用draw9patch工具来定义可伸缩区域,它可以在你的尺寸中正确缩放View

扫码关注云+社区