Java 如何将文本添加到图像中,并让用户在android中定位文本?

Java 如何将文本添加到图像中,并让用户在android中定位文本?,java,android,text,bitmap,scale,Java,Android,Text,Bitmap,Scale,我想知道如何做到这一点。这是否像您实例化一个textView,让用户定位它并设置属性,然后当用户点击“保存”按钮时,您从textView获取属性并将绘制对象添加到位图图像?(如果是,您如何获取和设置位置,因为用户看到的图像通常会缩小,以便适合屏幕) 或者就像你制作了一个结合了TextPaint和DynamicClayout的新位图一样(我不知道如何获得我的文本的宽度和高度,因为它会根据文本大小、字体、文本长度等而改变…) 我是一名初学者,这将是我的第一个应用程序,也是Java的新手。您可能希望使

我想知道如何做到这一点。这是否像您实例化一个textView,让用户定位它并设置属性,然后当用户点击“保存”按钮时,您从textView获取属性并将绘制对象添加到位图图像?(如果是,您如何获取和设置位置,因为用户看到的图像通常会缩小,以便适合屏幕)

或者就像你制作了一个结合了TextPaint和DynamicClayout的新位图一样(我不知道如何获得我的文本的宽度和高度,因为它会根据文本大小、字体、文本长度等而改变…)


我是一名初学者,这将是我的第一个应用程序,也是Java的新手。

您可能希望使用canvas或Surface view。您可以使用位图来绘制图像,然后使用canvas.paintText(…)来使用Paint()数据类型“绘制”文本。使用MotionEvent跟踪用户的输入。我不确定如何保存画布,但我听说这样做相当容易。您可以使用此网站学习画布、绘画、位图、运动事件等基础知识

我无法提供没有代码的具体示例。
希望这有帮助

我问了,但没有得到回答。这基本上是一个由三部分组成的问题。1、如何创建用户可以移动的视图。2、如何在运行时获取TextView属性。3、如何绘制自定义位图。你尝试过什么?我已经编写了一个类来保存属性,有一个方法可以重载touch来获得touch位置,我想我会将它指定给textView的位置,然后我会使用画布进行绘制。。但是我没法写这个职位,我也试过@zgc7009Gotcha,所以你实际上已经取得了很大的进步。我认为问题在于你对Android的伸缩机制的理解。您使用的是
paint.setTextSize(20*比例)的逻辑下,我还将textView的文本大小设置为20
。您是否使用与比例无关的像素(sp),因为20px!=20便士。这是相反的转换,但有一个相似的想法。我试过dp和pixel,但没有发现sp有什么不同?主要问题是文本的位置。应该注意的是,我提供的链接将引导您构建一个基本的游戏引擎。这一部分可以跳过。您可能希望更多地关注项目中的draw()方法。我尝试在此处使用Canvas.paintText,但位置没有正确缩放。。问题是,如果我使用画布在位图上绘制文本,则无法移动它,如果我将其放置在不同的视图中,则无法找到实际位图上的确切位置,因为图像被缩小,因此适合屏幕,并且我指定给视图的边距和画布上的位置具有不同的比例,因此文本没有在正确的位置结束。可以使用paint.setTextSize(…)将文本缩放到任意大小。要在画布上移动它,您需要在文本周围创建一个“不可见”的矩形,以便比较运动事件是否发生在该矩形内。你需要一个更新方法来移动文本,因为它将在每一帧“重画”。你的意思是我应该重新加载图像,并为文本移动的每个像素一次又一次地重画文本?听起来不会很顺利。看看应用程序,这就是我想要实现的…它是顺利的线程感谢,你会做很多计算,虽然调整大小。因此,您的更新方法可能相对较厚。我仍然相信画布是将文本绘制到画布的路线。您必须使用不同的方法来处理画布和更新,但制作文本视图会极大地限制您的功能。或者至少你需要对画布、绘画、曲面视图和运动事件的组合中提供给你的东西做更多的工作。