使用形状或 9 补丁图像创建聊天气泡

Creating a chat bubble using Shapes or 9-patch image

我正在尝试为我目前正在开发的 android 应用程序中的聊天气泡创建模板。最终结果应如下所示:

我用 Shapes 试过,但我无法正确设置多个图层。我还尝试了一个 9 补丁图像,但创建 9 补丁是我所得到的。我不知道如何使用它,特别是头像、消息 header 和内容放置。

有人能帮忙吗?

我对形状的了解相当有限,不过,我想我知道的足以理解你们会说的话:)

9补丁真的很容易。这是一个很好的教程:Simple Guide to 9 Patch.
只需将扩展名设为 .9.png,而不仅仅是 .png.
将它用作您的 ViewGroup(您的视图容器)的背景,如:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bubble_left"
    android:layout_margin="8dp"
    android:padding="8dp"
    >
    <!-- The User -->
    <TextView
        android:id="@+id/txtUser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
    />
    <!-- The Date -->
    <TextView
        android:id="@+id/txtDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtUser"
    />
    <!-- The Message -->
    <TextView
        android:id="@+id/txt2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/txtDate"
    />
</RelativeLayout>

我让你自由选择你想要的图形(符合你的口味,而不是破坏你的乐趣)。

显然,您可能想要为左侧准备一个气泡,为右侧准备一个气泡(或者具有不同颜色角的气泡),并在您的 Java 代码中相应地交换它们。