如何在Android中的位图图像上添加字符串?

2023-12-09

我想在位图图像上添加一个字符串。我有一个方法drawTextToBitmap,这个方法工作成功,将字符串放在位图图像上。但是我的位图图像非常小,就像 pinmark 图像一样。这个函数根据位图高度和宽度设置字符串。我想放置的字符串超过位图图像。所以请帮助我来解决问题。

我用来获取位图的以下方法:

public Bitmap drawTextToBitmap(Context gContext, int gResId, String gText) {
    Resources resources = gContext.getResources();
    float scale = resources.getDisplayMetrics().density;
    Bitmap bitmap = BitmapFactory.decodeResource(resources, gResId);

    android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig();
    // set default bitmap config if none
    if (bitmapConfig == null) {
        bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
    }
    // resource bitmaps are imutable,
    // so we need to convert it to mutable one
    bitmap = bitmap.copy(bitmapConfig, true);

    Canvas canvas = new Canvas(bitmap);
    // new antialised Paint
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    // text color - #3D3D3D
    paint.setColor(Color.BLACK);
    // text size in pixels
    paint.setTextSize((int) (70 * scale));
    // text shadow
    paint.setShadowLayer(1f, 0f, 1f, Color.BLACK);

    // draw text to the Canvas center
    Rect bounds = new Rect();
    paint.getTextBounds(gText, 0, gText.length(), bounds);
    int m = (bitmap.getWidth() - bounds.width()) / 2;
    int l = (bitmap.getHeight() + bounds.height()) / 2;

    canvas.drawText(gText, 1000, l, paint);

    return bitmap;
}

尝试这个:

public static Bitmap drawStringonBitmap(Bitmap src, String string, Point location, int color, int alpha, int size, boolean underline,int width ,int height) {

    Bitmap result = Bitmap.createBitmap(width, height, src.getConfig());

    Canvas canvas = new Canvas(result);
    canvas.drawBitmap(src, 0, 0, null);
    Paint paint = new Paint();
    paint.setColor(color);
    paint.setAlpha(alpha);
    paint.setTextSize(size);
    paint.setAntiAlias(true);
    paint.setUnderlineText(underline);
    canvas.drawText(string, location.x, location.y, paint);

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

如何在Android中的位图图像上添加字符串? 的相关文章

随机推荐

  • Linq To Sql 从函数返回 IQueryable

    好的 我已经成功地完成了以下工作 public IQueryable getTicketInformation int ticketID var ticketDetails from tickets in context tickets j
  • 使用 PowerShell 始终获取通讯组列表的 1500 名成员

    我想获取某个通讯组列表的所有成员 邮件地址 目前我刚刚接待了前1500名会员 我的脚本看起来像这样 group ADSI LDAP CN distListOne OU Groups DC XYZ DC XYZ group member co
  • 从字典列表中获取值列表

    我有一个这样的字典列表 value apple blah 2 value banana blah 3 value cars blah 4 I want apple banana cars 最好的方法是什么 假设每个字典都有一个value键
  • 在这种情况下,新的 JVM 实例或反射会有所帮助吗?

    我之前发布过一个问题 但没有得到明确的解决方案 如何防止JFrame关闭 所以我发布了 SSCCE 可能有助于更好地理解所面临的问题 package myApp import java lang reflect InvocationTarg
  • iPhone内存管理

    我正在开发一个应用程序 我想确保我正确管理内存并释放我应该释放的所有内容 在我的 viewDidLoad 方法中 我分配了一些变量来确定应用于视图的背景 用于国际化 如果我不释放它们 应用程序可以正常工作 问题是 如果我释放变量 应用程序就
  • 在反应本机样式表中使用变量将无法识别该变量

    我将颜色作为 props color 导入到我的功能组件中 并将其设置为状态 tagColor 当我在样式表中使用 tagColor 作为值来设置背景颜色时 我收到错误 找不到变量 tagColor 如何在样式表中使用变量 const Ta
  • 值与实体对象(领域驱动设计)

    我刚刚开始阅读DDD 我无法完全理解实体与值对象的概念 有人可以解释当值对象被设计为实体对象时系统可能面临的问题 可维护性 性能 等 吗 例子会很棒 简化为本质区别 身份对于实体很重要 但对于价值对象并不重要 例如 某人的姓名是一个值对象
  • WCF异常抛出和OOP方式处理

    好的 所以我就同一主题提出了另一个问题here虽然我没有得到直接的答案 但我整理了一些代码来完成我想做的事情 问题是 这种方式是否违反了一些 OOP 原则 我想要什么 使用正确的 OOP 声明服务的故障类型 在客户端有一个 catch 块
  • 是否可以使用 MediaStore.VOLUME_EXTERNAL 获取 WhatsApp 媒体文件

    我的应用程序需要备份 WhatsApp 状态 语音注释和图像的功能 如您所知 Android Q 后谷歌强制使用 MediaStore API 访问外部媒体文件 WhatsApp 还将他们的文件移至 Android media com wh
  • 使用 Scala 合并两个 CSV 文件的交集

    从输入 1 开始 fruit apple cider animal beef burger 并输入 2 animal beef 5kg fruit apple 2liter fish tuna 1kg 我需要制作 fruit apple c
  • Jquery UI 自动完成事件更改

    您好 我遇到了更改事件的问题 根据文档 应该有对象 ui item 选择一个项目后 ui item 指所选项目 始终在关闭事件后触发 但是当我尝试时 ui item 未定义 当自动完成中的输入与脚本中的数据不匹配时 我希望取消设置 s to
  • R - 添加在组内按顺序计数但重复重复的列

    我正在寻找一种解决方案来添加 desired result 列 最好使用 dplyr 和 或 ave 请参阅此处的数据框 其中组是 部分 我希望 desired results 列按顺序计数的唯一实例位于 exhibit 中 structu
  • .Net core 在静态文件夹(www)中添加文件夹并保存图像文件

    在静态文件夹中添加文件并在静态文件夹中保存图像 将 Base64 图像保存在 Dot net Core 项目中 public class EventMastersController Controller private IHostingE
  • Xcode 6.4 中的模拟器太多了

    我的 xCode 应用程序中有太多我尝试删除 但稍等片刻它又回到设备列表如何删除它 xcode 版本 6 4 6E35b 图片来自我的 xCode 设备列表中的图片 退出 Xcode 和模拟器 然后 在终端中 说 xcrun simctl
  • .包含在以下查询中并不真正包含

    var diaryEntries from entry in repository GetQuery
  • 如何使用 Struts 2 标签迭代 Set 元素

    我有两个Sets set1 contains A B C D elements set2 contains E F D G elements 我想比较每个元素set1与每一个元素set2并使用 Struts2 标签显示匹配的元素 重新整理以
  • strings.xml 中的参数可以吗? [复制]

    这个问题在这里已经有答案了 在我的 Android 应用程序中 我将通过国际化来实现我的字符串 我对不同语言的语法和句子构建方式有疑问 例如 5 分钟前 英语 vor 5 分钟 德语 我可以在 strings xml 中执行类似以下操作吗
  • 在 firebase 上使用 gzip 压缩

    我正在尝试在 Firebase 托管的 Web 上压缩 css 和 js 以提高加载速度 但是我无法使用 firebase json 配置文件为我的资产正确设置 gzip 压缩 The curl v命令显示从服务器提供文件时不执行压缩 还检
  • 为什么 std::unique_ptr 向量会出现无效指针异常

    我编写了简单的代码来帮助我理解智能指针 string s str vector
  • 如何在Android中的位图图像上添加字符串?

    我想在位图图像上添加一个字符串 我有一个方法drawTextToBitmap 这个方法工作成功 将字符串放在位图图像上 但是我的位图图像非常小 就像 pinmark 图像一样 这个函数根据位图高度和宽度设置字符串 我想放置的字符串超过位图图