开发者社区> 问答> 正文

在最终位图的拖动位置添加叠加图像-Android

我要执行的操作的基本描述:加载背景图像,将一些文本绘制到新的位图图层中,将该文本放置在要显示它的背景图像上,然后将背景图像保存在新图层中在我放置它的顶部。

问题:我遇到的问题是,当我在背景图像上绘制文本时,它最终以错误的x / y位置结束。

例如:1.我加载640x480图像,并将ScaleType设置为Fit_Start(将其缩小为1/2大小)。我一直在跟踪比率,并在将文本绘制为最终图像时使用它。

然后,我创建一个空白的叠加位图,在其上绘制一些文本,修剪掉多余的透明空间,然后将其放置到另一个imageview中(Matrix的ScaleType)

然后,使用鼠标和onTouchEvent方法放置新的imageview。我跟踪X和Y:

浮动X = event.getX();

浮动Y = event.getY()-50; //标题栏,状态栏

overlayView.layout((int)X,(int)Y,overlay.getWidth()+(int)X,overlay.getHeight()+(int)Y);

然后,我尝试使用X&Y将文本写入最终图像(背景图像),但是我将X&Y加倍,因为我知道图像会缩小一半以适合屏幕。

最终结果是将文本写入错误的位置。最终导致X稍微过多而Y不够(像25+取决于背景图像比例-这有所不同)。

我的数学错误的某个地方,或者我忘记在公式中添加一些内容,以计算应在其上绘制文本的背景上的正确位置。我已经为此工作了好几个小时,却无法查明问题所在。

我尝试的最后一件事是考虑到标题栏和状态栏,在模拟器上它们占用了50个像素。因此,我要从Y中减去它,这是在拖动时完成的。但这仍然不能纠正根据背景图像尺寸而不同的Y值。

有人对我做错了什么吗?

展开
收起
Puppet 2020-01-25 13:12:47 1390 0
1 条回答
写回答
取消 提交回答
  • 我认为这不是您的问题,但我认为您需要考虑设备的密度。原因标题栏+状态栏不会是50像素,而是50像素

    2020-01-25 13:12:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载