【问题标题】:Add un text onto an image programmatically using Kotlin使用 Kotlin 以编程方式将文本添加到图像上
【发布时间】:2021-09-15 16:08:26
【问题描述】:

我的 .xml 文件中有一个图像“myXmlImage”

在 .kt 文件中,我想粘贴另一个“newImage”图像以及一个小文本“newText”。

myXmlImage.setImageDrawable(newImage.drawable)
myXmlImage.imageMatrix = newImage.imageMatrix

到目前为止,它运行良好,并且新图像已经到位。

我完全不知道如何将小“newText”粘贴到其中

任何想法将不胜感激,在此先感谢。

【问题讨论】:

    标签: android image kotlin text


    【解决方案1】:

    也许比您在这里描述的要多。但如果这些真的是您唯一的规格,那么您所要求的就很简单了。

    我假设您的 xml 文件具有 ConstraintLayout 的根。如果没有,那么您要么想要更改它,要么至少将 ImageView 包装在 ConstraintLayout 中。

    1. 使用布局编辑器在 ImageView 中放置一个 TextView(不是小时候;当我说“内部”时,我的意思是在空间内部)。如果您没有经常使用布局编辑器,则可能需要尝试几次才能将 TextView 放入其中。不要只是把它拖到 ImageView 中,就好像它是一个孩子一样。将其拖放到 ConstraintLayout 内的 ImageView 下,然后使用侧面的小圆圈将其附加到 ImageView 的侧面。不要忘记将 TextView 的文本设置为“”。

    2. (我实际上不确定这一步是否必要,因为我不知道 TextView 的默认背景是什么,但我这样做是出于习惯。)当您完成将 TextView 放置在ImageView,去你的 xml 文件的代码并使用 android:background="#00FFFFFF" (或者也许在你的项目中的某个地方你有一个透明的背景可绘制或一个透明的@color,你可以通过名称引用)。

    3. 我相信你知道其余的。只需为该 TextView 提供一个类似 newtext 的 ID,然后在您的活动内部检索视图:newText:TextView=findViewById(R.id.newtext)。然后设置文本:newText.text="new text"。

    【讨论】:

    • 是的,当然 pffff,谢谢 D. Kupra。我明天早上会尝试,我认为在 imageView 下制作 textView 并不容易,但要有一点耐心......祝你有美好的一天。片段的另一个布局是在那个 imageView 上:-)
    • 嗯,你可以通过给事物高海拔然后切换它们的可见性来完成令人惊讶的事情。我不确定它的渲染成本有多高,但我至少有 5 或 6 个在设备上测试良好的活动,我能获得我想要的效果的唯一方法是在同一个父级中堆叠视图,堆叠它们高度,然后在运行时切换它们的可见性。
    • 是的,这很有趣。我是 Android 的新手,来自 iOS。它完美运行,再次感谢。您说“海拔”,您的意思是可以将元素放在堆栈的前面(堆叠图像)吗?
    • 是的,它与视图下方的 xml 中的其他 android:background=.. 标记一起在那里。每当您希望视图不被其他视图覆盖时,只需将海拔设置得更高。最酷的是你可以随意滥用这个技巧。将一个视图的高度设置为 5,而另一个视图不可见,然后将不可见视图的高度设置为 10,当您决定使其可见时,它将显示在顶部。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2023-03-19
    相关资源
    最近更新 更多