标签:getconf ons 依次 otto 方案 算法 tom pop resource
打开图库中图片为什么从模糊变清晰
1. 有一点要明白,图片要进行显示,首先要先将图片进行decode,然后才干显示
2. 图片decode须要时间,越大的图片,细节越多的图片,那么它decode时间就越长但我们觉得这样的方式也不是太好,为什么不是decode出一部分就显示一部分呢?
所以终于的方法是:我们将整个图片分成小块(tile),high resolution的图片,tile的size
是510,普通图片的tile size是254,然后我们依照从上到下,从左到右的顺序依次decode
tile,所以你看到图片一小块一小块的显示,图片逐步变清晰的过程
所以,眼下此方案已经做到了最优化,只是因为本身decode须要时间,我们不能做到一下显示清晰
图片,或者缩短图片变清晰的时间。
void updateFromConfiguration(Context context, Resources resources, int wPx, int hPx, int awPx, int ahPx) { Configuration configuration = resources.getConfiguration(); isLandscape = (configuration.orientation == Configuration.ORIENTATION_LANDSCAPE); isTablet = resources.getBoolean(R.bool.is_tablet); isLargeTablet = resources.getBoolean(R.bool.is_large_tablet); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) { isLayoutRtl = (configuration.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL); } else { isLayoutRtl = false; } widthPx = wPx; heightPx = hPx; availableWidthPx = awPx; availableHeightPx = ahPx; updateAvailableDimensions(context); }
图片双击变大算法
图片双击放大倍数和图片大小、显示图片的view大小,及图片当前的scale大小均有关系。
为了避免图片放大过大,设置了一个放大倍数的最大限制SCALE_LIMIT,眼下该值为4.
详细算法例如以下所看到的:
图片的宽和高分别记为:imageW imageH
显示图片的view宽和高分别记为:viewW viewH
几个重要的比例记为:
scale_1 = viewW / imageW; scale_2 = viewH / imageH; scale_3 = viewW / imageH; scale_4 = viewH / imageW;
假设当前图片的宽高比>2或者<0.5,则依照例如以下算法计算放大倍数zoomRate:
(1)当前scale = min(scale_1, scale_2);(6)此时zoomRate值即是图片应该放大的倍数。
(8)此时zoomRate值即是图片应该放大的倍数。
转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui
标签:getconf ons 依次 otto 方案 算法 tom pop resource
原文地址:http://www.cnblogs.com/yxysuanfa/p/7114810.html