卧疾丰暇豫,翰墨时间作。这篇文章主要讲述如何让用户在Android中随意绘制长画布?相关的知识,希望能为你提供帮助。
我想创建一个android笔记记录应用程序,用户可以用手指乱写笔记,向上滚动以在页面填满时打开更多空间,再写一些,并继续向上滚动,使文档更长,并涂鸦只要他们喜欢。
如果我使用位图(不断扩展)文档的长度,手机将很快耗尽内存。
我该怎么办呢?我是否应该考虑使用某种位图缓存的多个位图,当用户上下滚动时,交换位图和进出?一些Android功能,如Recycler视图或其他什么?
我担心我不能很好地解决这个问题,以便找出解决方案。我只需要指出正确的方向。
谢谢
约翰
答案您应该加载指定大小的位图并将其加载到画布上,然后您可以使用事件侦听器进行绘制。
int width = WIDTH_IN_PIXELS, height = HEIGHT_IN_PIXELS;
Bitmap.Config config = Bitmap.Config.ARGB_8888;
Bitmap bitmap = Bitmap.createBitmap(width, height, config);
Canvas canvas = new Canvas(bitmap);
ARGB_8888
在一个像素上存储4个字节。所以粗略地使用2000 * 2000左右的图像【如何让用户在Android中随意绘制长画布()】2000 * 2000 = 40,00,000像素所以总字节数将是40,00,000 * 4 =
1,60,00,000字节因此在MB中,它将是16MB,无法到达MemoryOut。
所以你可以做的是在recyclerview上加载你的大画布的缩放版(320 * 320,只需要400KB)版本,就像instagram的feed一样,不会使用大量的内存,因为当你滚动意见将被回收。
当用户单击某个特定项目时,您可以在另一个活动上使用完整的位图,这样就可以轻松处理,用户可以编辑现有的位图并保存。
推荐阅读
- ReadOnlyStringWrapper.ReadOnlyPropertyImpl从哪里获取来自ChangeListener的oldValue()
- 如何将dp转换为像素,并使用它在android中绘制到画布
- Android在画布上操纵图像 - 使用触摸,移动,放大/缩小,缩放
- Android(libstreaming)RTSP服务器可以播放视频但没有声音
- 如何使用robolectric对Android音频录制应用进行单元测试
- 如何在Android中开发音频流应用程序()
- AudioFormat在android.media.AudioFormat中不公开
- Ionic 2 Native Audio Android上没有声音
- 使用闹钟音量设置的Android闹钟声音()