Anv*_*war 6 android render bitmap imageview progressive
我正在从URL加载图像以显示在ImageView中.标准方法是按如下方式创建位图(其中InputStream is已从URL获取):
Bitmap bm = BitmapFactory.decodeStream(is);
Run Code Online (Sandbox Code Playgroud)
但我正在处理大图像,我想在整个图像加载到位图之前开始显示像素,即我希望实现图像的渐进式渲染(类似于在Web浏览器中加载大图像).例如,如果图像是隔行扫描的PNG,这将允许我在等待加载完整图像时向用户显示较低质量的图像.基本上,我想实现渲染,如http://www.codinghorror.com/blog/2005/12/progressive-image-rendering.html所示
我知道如果我可以实现一个PNG解码器,或者使用一个开源实现,我可以修改它以便在我读取它们时立即将像素渲染到ImageView的位图,但这看起来像是我想要的巨大努力.
简单的渐进式接收渲染:这是通过考虑传输网络层(TCP)来实现的。按顺序接收到的每个数据包都会在应用层中传递并立即显示。如果您希望实现这一目标,那么您需要考虑在应用程序中进行套接字编程。
然而,这是一种旧方法,实际上计算量更大。我个人更喜欢使用存根图像进行锻炼。存根图像在开始时显示,并启动具有 url 连接和下载(管理器或缓存)的即时线程。下载完成后,您将返回主线程来更新照片。这更有组织性。
如果我在任何意义上错了,请纠正我。
| 归档时间: |
|
| 查看次数: |
1425 次 |
| 最近记录: |