如何在 Android 中显示时绘制位图
How to drawBitmap on display in Android
我正在开发 Android 应用程序,但我对
我的项目的可行性。
我必须实现一个由显示图像的 ImageView 组成的自定义布局,尤其是 VectorDrawable。
重叠 ImageView 有一个 SurfaceView:
- 捕获触摸的每一个坐标;
- 每次触摸屏幕时绘制一个位图(在特定位置)。
目的是显示背景图像并将其用作参考,每次用户触摸屏幕时都必须在 SurfaceView 上插入标记,此技术允许模拟在图像上插入标记。
问题是:
还有其他更好的方法吗?
我已经实现了,这个想法可行,但我对 SurfaView 有一些限制(例如我不能将它插入 ScrollView)。
最后:
考虑到目前的推理,假设有一个显示VectorDrawable的ImageView,是否可以创建一个放大和缩小图像(VectorDrawable)的函数?
p.s。我很抱歉提出了两个问题,但整体是密切相关的,我认为开两个线程是愚蠢的
任务 1:您的任务可以使用 SurfaceView
完成,但我假设在您绘制图像后您希望它保留,如果是这种情况,您可能需要跟踪每张图像分别地。如果您的任务只是绘制图像,您还可以覆盖 View
,它可以完成相同的任务,但也会提供透明度和基本布局实现。 View
和 SurfaceView
之间的区别在于性能,SurfaceView
是相当低的级别,具有双缓冲区,并为您提供更多控制。此外,如果图像数量较少,您可以覆盖 FrameLayout
并生成 ImageView
。效率不是很高,但会更容易实现。
任务 2:您可以使用 setScaleX
和 setScaleY
轻松缩放 ImageView
。但这可能会使图像像素化。加载一个大的 Bitmap
然后在自定义视图上绘制它是更好的方法。
我正在开发 Android 应用程序,但我对 我的项目的可行性。
我必须实现一个由显示图像的 ImageView 组成的自定义布局,尤其是 VectorDrawable。
重叠 ImageView 有一个 SurfaceView:
- 捕获触摸的每一个坐标;
- 每次触摸屏幕时绘制一个位图(在特定位置)。
目的是显示背景图像并将其用作参考,每次用户触摸屏幕时都必须在 SurfaceView 上插入标记,此技术允许模拟在图像上插入标记。
问题是:
还有其他更好的方法吗? 我已经实现了,这个想法可行,但我对 SurfaView 有一些限制(例如我不能将它插入 ScrollView)。
最后:
考虑到目前的推理,假设有一个显示VectorDrawable的ImageView,是否可以创建一个放大和缩小图像(VectorDrawable)的函数?
p.s。我很抱歉提出了两个问题,但整体是密切相关的,我认为开两个线程是愚蠢的
任务 1:您的任务可以使用 SurfaceView
完成,但我假设在您绘制图像后您希望它保留,如果是这种情况,您可能需要跟踪每张图像分别地。如果您的任务只是绘制图像,您还可以覆盖 View
,它可以完成相同的任务,但也会提供透明度和基本布局实现。 View
和 SurfaceView
之间的区别在于性能,SurfaceView
是相当低的级别,具有双缓冲区,并为您提供更多控制。此外,如果图像数量较少,您可以覆盖 FrameLayout
并生成 ImageView
。效率不是很高,但会更容易实现。
任务 2:您可以使用 setScaleX
和 setScaleY
轻松缩放 ImageView
。但这可能会使图像像素化。加载一个大的 Bitmap
然后在自定义视图上绘制它是更好的方法。