gpt4 book ai didi

android - 开发自定义对话泡泡

转载 作者:搜寻专家 更新时间:2023-11-01 09:13:24 24 4
gpt4 key购买 nike

我是 Android 应用程序开发的新手。我正在构建一个 Android 应用程序,用户需要能够在现有图像上添加对话气泡(想想漫画)。我对如何实现这个有一些疑问,

  • 我应该构建一个自定义组件吗?你能帮我构建合适的 xml 吗?
  • 允许用户使用触摸移动对话泡泡 - 任何指示或示例都很棒!
  • 还让他根据文本的数量调整演讲的大小 - 任何指示或示例都很棒!
  • 他终于可以在对话泡泡中添加文字了!!这个气泡是否与背景不同的 TextView 相同?

我需要你的帮助!!

最佳答案

这是一个非常宽泛的问题。我的回答只是快速浏览一下我个人将如何根据 View 来处理对话泡泡。

在 Android 平台上,在屏幕上表示任何类型的信息通常是使用 View 对象的混合来完成的。例如,如果显示图像,则使用 ImageView。要显示项目列表,它是一个 ListView。出于不同的目的,有许多标准类型的 View ,系统将它们作为显示不同类型信息的标准。您通常会使用此类 View 的组合来构建您的 UI 屏幕。

很多时候,您需要创建自己的 View 子类。如果您想绘制某种图形,例如当您将矢量图形绘制到 Canvas 时,您通常可以这样做。例如,如果您想使用直线 Path() 对象绘制对话泡泡(例如,绘制一个椭圆和线条,使用黑色描边和白色填充来形成对话泡泡),您可以创建扩展 View 的 SpeechBubbleView。在其 onDraw() 方法中,您将绘制对话泡泡图形。另一方面,您可能希望使用位图而不是绘制来表示您的对话泡泡。然后,无论您以何种方式绘制对话泡泡,您都需要在其中插入文本——可能使用 TextView。但是,将气泡和其中的文本表示为单个 View 对象不是更好吗?是的,所以您可能要做的是将您的对话泡泡图形和 TextView 包含在一个 ViewGroup 中——ViewGroup 是一种可以容纳 subview 的 View 。您可能会使用的 ViewGroup 的特定子类是 RelativeLayout,这是一个允许其 subview 重叠的 View 。因此,您将拥有扩展 RelativeLayout 的 SpeechBubbleView,其 subview 可能是 TextView 和包含对话气泡位图的 ImageView。

至于如何在图像上叠加对话气泡,您可能会再次使用 RelativeLayout。在您的布局 XML 文件中,主父容器将是一个 RelativeLayout。在那个 subview 中可能是一个 ImageView,其中包含用户想要放置气泡的位图。然后,更多的 subview 将是您的 SpeechBubbleViews。

至于四处拖动对话气泡,您可以通过在 Activity 中使用 OnTouchListener 来实现。我有一些拖放代码在我现在打开的当前项目中工作;我可能会为您复制并粘贴其中的一些内容,但老实说,我认为这是一个单独的、更具体的问题,您需要先掌握更多的基础知识。

您的问题非常宽泛,很多您需要涵盖的内容,但希望这些指示会有所帮助。

关于android - 开发自定义对话泡泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com