如何在自定义视图中绘制文本?

2024-04-03

我创建了自定义视图来在内部绘制自定义语音气泡 我想在自定义视图上放置一些文本。我用在路径上绘制文本但它不起作用,我希望文本逐行显示。

自定义视图 - 语音气泡

Paint paint = new Paint();

paint.setColor(Color.BLACK);
paint.setAntiAlias(true);
paint.setStrokeWidth(2);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);      
paint.setPathEffect(new CornerPathEffect(15) );  
paint.setStyle(Paint.Style.FILL_AND_STROKE);
paint.setDither(true);
paint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.BLACK, Color.WHITE,
                                                           Shader.TileMode.MIRROR));
Path path = new Path();         
paint.setShadowLayer(4, 2, 2, 0x80000000);
path.moveTo(myPath[0].x, myPath[0].y);
for (int i = 1; i < myPath.length; i++){
    path.lineTo(myPath[i].x, myPath[i].y);                  
}
path.close();
canvas.clipPath(path);
canvas.drawPath(path, paint);
canvas.save();
paint = new Paint();
paint.setColor(Color.WHITE);
canvas.drawTextOnPath(MessageBody, path, 10, 10, paint);

Thanks.


像这样的东西?

Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
canvas.drawPaint(paint);
...
//tell the paint of the new color
paint.setColor(android.R.color.black);
paint.setTextSize(20);
canvas.drawText("Some Text", 10, 25, paint);

edit:

那为什么不这样呢

Path path = new Path();
path.addCircle(width/2, height/2, radius, Path.Direction.CW);

Paint paint = new Paint();
paint.setColor(Color.WHITE);
paint.setTextSize(20);
canvas.drawTextOnPath("Some Text", path, 0, 0, paint);

编辑nr2:

为什么不添加一个矩形?

path.addRect(left, top, right, bottom, Direction.CW);

or

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

如何在自定义视图中绘制文本? 的相关文章

  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • 导航组件重复 NavArgs 的问题

    我有一个片段 class SomeFragment private val args by navArgs
  • Firebase Analytics 禁用受众国家/地区跟踪

    我正在开发一个严格不允许位置跟踪的应用程序 我想使用 Firebase Analytic 的其他功能 例如 PageTransitions 和 Crashalitics 但如果我无法禁用受众位置跟踪 我就无法使用其中任何功能 这是我在 An
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • 如果我们使用后退按钮退出,为什么 Android 应用程序会重新启动?

    按住主页按钮并返回应用程序时 应用程序不会重新启动 为什么使用后退按钮会重新启动 如果我们使用后退按钮退出 有什么方法可以解决在不重新启动的情况下获取应用程序的问题吗 请帮忙 当您按下Home按钮 应用程序将暂停并保存当前状态 最后应用程序
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • 从 Firebase 数据库填充微调器

    public class MainActivity extends AppCompatActivity DatabaseReference reference Spinner areaSpinner ArrayList
  • 带有自定义阵列适配器的微调器不允许选择项目

    我使用自定义阵列适配器作为微调器 但是 当在下拉列表中选择一个项目时 下拉列表保留在那里 并且微调器不会更新 这是错误行为 与使用带有字符串的通用数组适配器相比 这是自定义类 我错过了什么吗 谢谢 public class Calendar
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • Android Webview 图像未加载

    我制作了一个简单的应用程序WebView 但有些图片无法加载 正确 在我的电脑上 错误 在模拟器中 Correct 错误 没有横幅 于是我用Chrome debug进行调试 发现我的代码被改变了 我不添加像noscript or style
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 如何将设备连接到Eclipse?

    我无法解决这个简单的问题 我正在尝试通过 USB 电缆将我的设备连接到 Eclipse 在我的 PC 上 我已经安装了 Eclipse 和 Android SDK 并且在模拟器上运行该程序运行良好 我已在我的电脑上下载并安装了 Samsun
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • 为什么Android的ImageReader类这么慢?

    我尝试了适用于 Android 3 4 1 的全新 OpenCVJavaCamera2View但它太慢了 仅显示相机视图约 15 fps 当我尝试较旧的JavaCameraView相反 它给了我很好的结果 30fps 这是我相机的极限 我想
  • 找到 Android 浏览器中使用的 webkit 版本?

    有没有办法知道某些特定手机上的 Android 浏览器使用的是哪个版本的 webkit 软件 如果有一个您可以浏览以获取该信息的 URL 那就太好了 但任何其他方式也很好 如果你知道 webkit 版本 你就知道 html5 支持多少 至少
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐

  • 并排 div

    如何并排放置两个 div 并在它们之间使用分离器 那就是我的意思 我假设 html 布局看起来像这样 div div div div div div div div or div div div div div div div div ht
  • 通过 HTTPS 以 JSON 格式发送密码是否安全?

    如果我通过 HTTPS 发送 JSON 格式的密码来执行身份验证 安全吗 有更好的方法吗 一般来说 将用户名和密码发送到服务器以执行身份验证的最佳方法是什么 一般来说 是的 这对于被动网络窃听者是安全的 这是人们在这种架构中担心的主要威胁
  • 预加载器继续加载并且在加载内容时不会消失

    好的 首先 这是我的代码 var loader document getElementById loader window addEventListener loader function loader style display none
  • 是否有与 C++ std::partial_sort 等效的 C# ?

    我正在尝试为可通过许多标准排序的数据集实现分页算法 不幸的是 虽然其中一些标准可以在数据库级别实现 但有些必须在应用程序级别完成 我们必须与另一个数据源集成 我们有分页 实际上是无限滚动 要求 并且正在寻找一种方法来最大程度地减少每次分页调
  • ASP.NET-Identity:如何限制用户名长度?

    我怎样才能限制长度UserName表中的字段AspNetUsers 这都不是 public class ApplicationUser IdentityUser Required MaxLength 15 public string Use
  • C# 7 基于元组的变量交换线程安全吗?

    在 C 7 的元组之前 交换两个变量的标准方法如下 var foo 5 var bar 10 var temp foo foo bar bar temp 但现在我们可以使用 foo bar bar foo 它在一条线上 而且更漂亮 但它是线
  • 绘图错误“您的浏览器不支持 WebGL”

    我正在尝试使用创建一些 3D 绘图plotly包裹 我使用的代码是他们的教程示例 library plotly volcano is a numeric matrix that ships with R fig lt plot ly z v
  • 使用 RC.EXE 或 BRCC32.EXE 构建 *.rc 文件时包含文件的行为有所不同

    我希望在我的 Delphi 项目的 RC 文件中使用点 作为资源条目 但是 Delphi 的 BRCC32 exe 不允许在资源命名中使用点 从Delphi 2010开始 我们可以在中指定 要使用的资源编译器 Project Option
  • 非常简单的 Firestore 事务失败

    我正在为一项超级简单的交易而苦苦挣扎 它总是失败并显示消息 事务所有重试均失败 但除此之外没有任何错误消息logcat 当我调试它时 我发现它被重试了几次 我真的不知道为什么 因为其他交易运行没有问题 我只想将一个文档从一个集合克隆到另一个
  • 使用 UIImagePickerController 时出现内存警告

    当我在 iPhone 上使用相机时收到内存警告 我也在使用 ARC 当您拍照并按相机视图控制器上的 使用照片 按钮时 我会收到内存警告 目的是一旦按下 使用照片 按钮 它就会更改 ImageView 的内容 我认为内存问题可能是由于捕获的图
  • 如何在 Sublime Text 中格式化 django 模板

    如何在 Sublime Text 中格式化 django 模板 我的模板包括 HTML django 模板语言与 variable and stuff javascript 有没有办法获得 PyCharm 提供的相同类型的格式 这个包应该可
  • 在 Blazor 中增加文本区域

    我需要一个随着行数增加而增长的文本区域 一旦行被删除 TextArea 就会再次缩小 在最好的情况下具有最大高度 它如何与 Javascript 一起工作我已经可以在这里阅读 根据内容长度调整文本区域大小 https stackoverfl
  • Spring中Bean创建异常

    我正在尝试自动装配在另一个项目中声明的类 但是在我收到运行时异常而不是编译时异常 如果我删除自动装配并使用新实例创建一个对象 它会完美运行 我收到以下错误 ErrorSEVERE StandardWrapper Throwable org
  • 如何通过Java程序调节扬声器音量?

    我运行的是 Win Vista 在窗口右下角的时钟旁边有一个扬声器图标 我可以单击它并调整音量 我想知道我的 Java 程序中是否有办法自动执行此操作 例如 当我的Java程序启动时 它将音量调至80 当程序退出时 它将音量调回原来的水平
  • Bouncy castle 中使用 SHA256 的 ECDSA 抛出无此类算法异常

    我正在尝试使用生成签名ECDSA with SHA256 in Bouncy Castle如下 我在开头添加了提供者 我已经构建了 ECPrivatekey Signature s oSignature Signature getInsta
  • 仅当存在查询字符串时才适用于图像文件请求的 RewriteRule

    由于我有限的正则表达式和 mod rewrite 能力 我正在尝试重写某些图像请求 以便我可以使用 php 脚本更改输出 这是我所拥有的 RewriteRule public uploads A Za z0 9 JPEG JPG GIF P
  • 检查是否使用 JQuery 设置了 URL 变量

    我想知道是否有一个 jQuery 函数可以检查 URL 中的变量是否已设置 类似于 PHP 中的 isset 函数 Thanks jQuery 没有获取 URL 参数的本机函数 但你可以编写自己的插件 extend getUrlVars f
  • Python 中方括号和括号括起来的列表有什么区别?

    gt gt gt x 1 2 gt gt gt x 1 2 gt gt gt x 1 2 gt gt gt x 1 2 它们都有效吗 是否因某种原因而受到青睐 方括号是lists http docs python org tutorial
  • 覆盖 require 后调用 lua_getfield() 时崩溃

    这个问题与 Henri Menke 在这个问题中的回答相关 如何在 C 中获取预加载模块名称 https stackoverflow com questions 51510308 how to get preloaded module na
  • 如何在自定义视图中绘制文本?

    我创建了自定义视图来在内部绘制自定义语音气泡 我想在自定义视图上放置一些文本 我用在路径上绘制文本但它不起作用 我希望文本逐行显示 自定义视图 语音气泡 Paint paint new Paint paint setColor Color