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

2024-01-03

我正在尝试在我目前正在开发的 Android 应用程序中为我的聊天气泡创建一个模板。最终结果应该是这样的:

我尝试使用“形状”,但无法获得正确的多个图层。我还尝试了 9 补丁图像,但创建 9 补丁是我所能做到的。我不知道如何使用它,特别是头像、消息标题和内容放置。

有人可以帮忙吗?

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


9 补丁真的很容易。这是一个很好的教程:9补丁简单指南 http://developer.android.com/intl/es/guide/topics/graphics/2d-graphics.html#nine-patch.
只需进行扩展即可.9.png, 不只是.png.
将其用作 ViewGroup(您的 View 容器)的背景,如下所示:

<?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 代码中相应地交换它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用形状或 9 块图像创建聊天气泡 的相关文章

随机推荐

  • C#:传递通用对象

    我想要一个通用的打印功能 PrintGeneric T 在以下情况下 我缺少什么 一如既往 感谢您的帮助 见解 public interface ITest public class MyClass1 ITest public string
  • Visual Studio - 从元数据查看类型

    我记得在以前安装的 Visual Studio 中 当我对当前解决方案中不存在的类型使用 转到定义 选项时 它会显示一个选项卡 显示从元数据反映的类型 我当前的安装直接进入对象浏览器 我更喜欢看到元数据版本 有没有什么方法可以选择默认行为
  • 将 Swift 字典转换为 NSDictionary

    我创建了一个 Swift Dictionary 对象 var params first name firstNameTextField text last name lastNameTextField text company compan
  • 如何替换回车符

    我有一个变量 myClass 0 gt comment 其中有回车符 我想将该变量中的所有回车替换为 n 我怎样才能做到这一点 下面可能会有所帮助 myClass 0 gt comment 这是一些输出 输出 array 0 gt stri
  • 使用 React Router 在页面的某个部分内导航

    我的导航栏包含以下内容 Home About Login Home is 具有多个部分的垂直滚动页面 e g About和其他部分 虽然登录是单独的反应组件 它被渲染在 login route 这是我的route js file
  • 如何强制 SDL_Init() 失败?

    有没有可靠的方法SDL Init 在测试用例中使用失败 我认为您可以通过不包含 SDL 动态链接库 SDL dll 来强制它失败
  • 忽略“检测到源架构漂移”错误,继续更新

    我在 Visual Studio 2017 中有一个 SQL 项目 我正在使用 SSDT 从 SQL 数据库更新我的项目 如下所示 通常 我用作源的数据库正在发生变化 通常以小且不相关的方式 当发生这种情况时 我无法更新我的项目 我得到 c
  • 如何在 Laravel 5 中删除会话

    我正在尝试删除基本会话 但它没有删除 这是代码 欢迎 blade php if Session has key Session get key a href logout Sign Out a else please signin endi
  • 如何使用streamreader以当前编码读取byte[]

    我想读byte 使用 C 和文件的当前编码 正如 MSDN 中所写 当构造函数没有编码时 默认编码将为 UTF 8 var reader new StreamReader new MemoryStream data 我也尝试过 但仍然以 U
  • mysql_insert_id() 返回 0

    我知道有很多主题具有相同的标题 但主要是查询插入到了错误的位置 但我认为我的定位是正确的 所以问题是 即使数据插入到数据库中 我仍然得到 0 有人知道我可能错的答案吗 这是我的代码 mysql query SET NAMES utf8 th
  • 如何在 Visual Studio Team Services 中的托管代理上查找 Android SDK 的位置?

    我想在 VSTS 中的托管构建代理上构建我的 android 项目 因此 我创建了一个 Android 构建定义 将其在 托管 Linux 预览 代理上排队 但我的构建失败并出现以下错误 未找到 SDK 位置 使用 sdk dir 定义位置
  • 如何在没有 FlexBuilder 的情况下将 Cairngorm 的 SWC 文件添加到我的应用程序中?

    我没有使用 FlexBuilder 我使用的是免费的 Flex SDKTextMate http macromates com 我有点不明白什么这个FlexBuilder进程 http nwebb co uk blog p 58实际上 在所
  • 如何在 F# 交互中使用断点?

    我已经开始使用 VS2010 和 F 交互式研究算法中的一些想法 所以 我创建了一个DebugScript fsx 我在那里编写了一些代码 并最终将其发送到 F Int 进行测试 有时我需要捕捉一个错误 但即使是简单的我也无法放置断点for
  • 将背景图像叠加到背景颜色上

    我的网站 http www webbuddies co za http www webbuddies co za 工作完美 但是当以 1280x1024 分辨率查看时 页面底部有一点可见的白色 我想去掉它 背景是渐变图像 我只想更改背景颜色
  • 如何将 TextBlock 设置为属性值?

    I used this http www c sharpcorner com uploadfile mahesh user control in wpf 构建自定义控件的教程 现在 我想向用户控件添加一条简单的消息 文本块 来为用户提供一些
  • 禁用 mongo docker 中的默认身份验证

    我想禁用默认身份验证 避免使用 mongo authenticationDatabase auth db 在 mongo 中使用 docker compose 这是我的docker 撰写 file version 2 services mo
  • 为什么增加 Nginx 中的worker_connections 会使应用程序在node.js 集群中变慢?

    我正在将我的应用程序转换为 Node js 集群 我希望它能够提高我的应用程序的性能 目前 我正在将该应用程序部署到 2 个 EC2 t2 medium 实例 我有 Nginx 作为代理和 ELB 这是我的 Express 集群应用程序 从
  • Keras 的 TensorBoard 回调中嵌入不匹配的张量数量

    我使用的是 CIFAR 10 数据集 因此有 10000 张测试图像 我成功创建了一个 tsv包含元数据的文件 10000 行中每一行的测试集标签 以人类可读的文本形式 而不是索引 但是 在 TensorBoard 中 当我打开嵌入选项卡时
  • Qt fitInView 和调整大小

    我正在尝试做一个QGraphicsView宽度与窗口中心的高度相同 我创建了一个普通的QGraphicsView在 Qt Designer 中并设置最小尺寸 添加了一些居中的计算QGraphicsView进入主窗口的中心 并将宽度设置为与高
  • 使用形状或 9 块图像创建聊天气泡

    我正在尝试在我目前正在开发的 Android 应用程序中为我的聊天气泡创建一个模板 最终结果应该是这样的 我尝试使用 形状 但无法获得正确的多个图层 我还尝试了 9 补丁图像 但创建 9 补丁是我所能做到的 我不知道如何使用它 特别是头像