如何在Android中显示位图(drawBitmap)

3

我正在开发一个Android应用程序,但我对我的项目的可行性有些怀疑。

我必须实现一个自定义布局,由ImageView组成,显示一张图片,特别是一个VectorDrawable。

在ImageView上方重叠着一个SurfaceView,它可以:

  • 捕获每个触摸点的坐标;
  • 每次触摸屏幕时在某个位置绘制一个位图。

目的是显示一个背景图片并将其用作参考,每当用户触摸屏幕时,在SurfaceView上插入一个标记,这种技术允许模拟在图像上插入标记的过程。

问题是:

有其他更好的方法来做到这一点吗?我已经实现了这个想法,它能够工作,但我对SurfaView有一些限制(例如,我无法将其插入到ScrollView中)。

最后:

考虑到到目前为止所做出的推理,假设有一个显示VectorDrawable的ImageView,是否可能创建一个放大和缩小图像(VectorDrawable)的函数?

p.s. 我很抱歉提出了两个问题,但整个问题是密切相关的,我认为打开两个线程是愚蠢的。

1个回答

1
任务1:您的任务可以使用SurfaceView完成,但我假设在您绘制图像后,如果您希望其保留,则可能需要单独跟踪每个图像。如果您的任务只是绘制图像,则还可以覆盖View,它可以执行相同的任务,但还提供透明度和基本布局实现。 ViewSurfaceView之间的区别在于性能,SurfaceView具有双缓冲区,并为您提供更多控制权。此外,如果图像数量较少,则可以覆盖FrameLayout并生成ImageView。虽然效率不高,但实现起来更容易。
任务2:您可以使用setScaleXsetScaleY轻松缩放ImageView。但这可能会使图像变得模糊。加载大型Bitmap,然后在自定义视图上绘制它将是更好的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接