luckyjayce / largeimage Goto Github PK
View Code? Open in Web Editor NEWAndroid 加载大图 可以高清显示10000*10000像素的图片,轻松实现微博长图功能
License: Apache License 2.0
Android 加载大图 可以高清显示10000*10000像素的图片,轻松实现微博长图功能
License: Apache License 2.0
03-08 10:43:05.672 809-1142/com.huanmedia.yourchum.debug D/ONE SDK: [2017/3/8 10:43:5:679]: [net] has wifi connection
03-08 10:43:05.672 809-14006/com.huanmedia.yourchum.debug W/System.err: at android.graphics.BitmapRegionDecoder.nativeNewInstance(Native Method)
03-08 10:43:05.672 809-14006/com.huanmedia.yourchum.debug W/System.err: at android.graphics.BitmapRegionDecoder.newInstance(BitmapRegionDecoder.java:124)
03-08 10:43:05.682 809-14006/com.huanmedia.yourchum.debug W/System.err: at android.graphics.BitmapRegionDecoder.newInstance(BitmapRegionDecoder.java:150)
03-08 10:43:05.682 809-14006/com.huanmedia.yourchum.debug W/System.err: at com.shizhefei.view.largeimage.factory.FileBitmapDecoderFactory.made(FileBitmapDecoderFactory.java:23)
03-08 10:43:05.682 809-14006/com.huanmedia.yourchum.debug W/System.err: at com.shizhefei.view.largeimage.BlockImageLoader$LoadHandler.handleMessage(BlockImageLoader.java:805)
03-08 10:43:05.692 809-14006/com.huanmedia.yourchum.debug W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
03-08 10:43:05.692 809-14006/com.huanmedia.yourchum.debug W/System.err: at android.os.Looper.loop(Looper.java:136)
03-08 10:43:05.692 809-14006/com.huanmedia.yourchum.debug W/System.err: at android.os.HandlerThread.run(HandlerThread.java:61)
没重写onMeasure,导致设置wrap_content无效。
大图显示效果很不错,但是几百kb的小图片反而显示不了,问什么呢?
我看到了ReadMe有如下内容:
//加载普通大小图片
largeImageView.setImage(R.drawable.cat);
largeImageView.setImage(drawable);
largeImageView.setImage(bitmap);
怎么判断图片是大图还是普通大小?
加载的本地超长图但是会有短暂黑屏问题,大神这个是什么问题怎么解决呢?
listview的item中使用,加载442x12339图片无法显示
用DownLoadOnly加载网络图片,图片被翻转
而用into直接加载就不会被翻转
09-20 15:55:41.808 14992-15304/W/System.err: java.io.IOException: Image failed to decode using JPEG decoder
09-20 15:55:41.808 14992-15304/W/System.err: at android.graphics.BitmapRegionDecoder.nativeNewInstance(Native Method)
09-20 15:55:41.808 14992-15304/ W/System.err: at android.graphics.BitmapRegionDecoder.newInstance(BitmapRegionDecoder.java:124)
09-20 15:55:41.808 14992-15304/ W/System.err: at com.shizhefei.view.largeimage.factory.InputStreamBitmapDecoderFactory.made(InputStreamBitmapDecoderFactory.java:22)
09-20 15:55:41.808 14992-15304/ W/System.err: at com.shizhefei.view.largeimage.BlockImageLoader$LoadImageInfoTask.doInBackground(BlockImageLoader.java:793)
09-20 15:55:41.808 14992-15304/ W/System.err: at com.shizhefei.view.largeimage.TaskQueue$Task.doInBackground(TaskQueue.java:44)
09-20 15:55:41.808 14992-15304/ W/System.err: at com.shizhefei.view.largeimage.TaskQueue$Task.doInBackground(TaskQueue.java:31)
09-20 15:55:41.808 14992-15304/W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:292)
09-20 15:55:41.808 14992-15304/ W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
09-20 15:55:41.808 14992-15304/W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
09-20 15:55:41.808 14992-15304/ W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
09-20 15:55:41.808 14992-15304/ W/System.err: at java.lang.Thread.run(Thread.java:818)
控制缩放的开关有没有
控制左右滑动的开关也没有
将下面的图片下载到assets,显示空白
http://api.gujiguji.com/uploads/Editor/2016-09-14/pz1473824251.jpg
一个首页需要加载几个视频和一张长图,把LargeImage放到NestedScrollView加载不出来图片
要是能支持GIF就更好了
把大图控件当做listView的item项加载,无法正常显示
加载的图片字全花了
点击小图有一个放大的过程大查看大图的地方
你好,我这边需要第一次加载大图,然后中心区域显示大图的某一块,要怎么处理,我这边能先知道left,top, right,bottom
renderscriptTargetApi 19 renderscriptSupportModeEnabled true
无法显示大图。去掉上面的配置就可以显示了
RecyclerView 中使用UpdateImageView时,设置了layoutparams。使用px时,导致图片加载不全。转成dp后,下方有空白。图片越长,下方的空白越长。
你好,library项目里的 mainfest 里的 allowBackup=true 与 我们的项目产生冲突,请问这个是否可以去除
项目需要加载地图的图片每张大概50-100M,同时又使用到了Viewpager很容易就导致OOM了~
使用中发现在MIX2手机上加载一张有旋转角度的图片,显示效果为旋转90度.
即使我们在外部将图片旋转为0度,再将drawable传入LargeImage也仍然显示异常.
下拉刷新,屏幕闪烁两次
和Recyclerview,PagerSnapHelper,结合起来做左右滑动,显示大图,有滑动冲突,怎么解决,求
加载大图,关闭硬件加速就可以了!今天我尝试加载688x5360的图片,而Bitmap 最大能显示4096x4096的。而我关闭硬件加速就显示了。。。。。
加载结束 也可能未展示图片 有没有展示成功这种类型的api 🙏
getMinScale 返回1/4,一直缩小的话,图片直接缩小没了
java.lang.IllegalArgumentException: rectangle is outside the image
修改如下,当layout的宽大于高的时候,测试没有问题,使用largeImageView.setScale(largeImageView.getFitScale());
设置图片缩放比例时,能够将图片完整显示
设置 0.9 的原因是:如果不设置,则会感觉图片占得太满,0.9 看起来刚刚好
private void initFitImageScale(int imageWidth, int imageHeight) {
final int layoutWidth = getMeasuredWidth();
final int layoutHeight = getMeasuredHeight();
if (imageWidth < imageHeight) {
fitScale = 0.9f * imageWidth / imageHeight * layoutHeight / layoutWidth;
} else {
fitScale = 0.9f;
}
minScale = 0.25f;
maxScale = 1.0f * imageWidth / layoutWidth;
float a = (0.9f * imageWidth / layoutWidth) * layoutHeight / imageHeight;
float density = getContext().getResources().getDisplayMetrics().density;
maxScale = maxScale * density;
if (maxScale < 4) {
maxScale = 4;
}
if (minScale > a) {
minScale = a;
}
if (criticalScaleValueHook != null) {
minScale = criticalScaleValueHook.getMinScale(this, imageWidth, imageHeight, minScale);
maxScale = criticalScaleValueHook.getMaxScale(this, imageWidth, imageHeight, maxScale);
}
}
// 500行的方法 public List<DrawData> getDrawData(float imageScale, Rect imageRect)
就算不拆分,好歹加点注释啊
@LuckyJayce 看到更新了,最近一直在研究这个库,有注释清晰了许多,感谢。
我想在这个库的基础上进行扩展,目前的做法是在ScrollView中添加两个LargeImageView,基本能实现出效果,但是总感觉不是最优解。而且后续还有添加图片覆盖物等各种需求,感觉这个方式不太好处理。
另一个想法是在getDrawData中进行处理,将x轴方向超出图片边界的部分,用图片头部或尾部进行补充,可是一直没实现出来。
而且如果用这种方式的话,如果一直向一个方向滑动,Scale的fromX是会一直增加或一直减少的,如何重置状态也没有想出好的办法。
请问@LuckyJayce能否指点一二,万分感谢。
ViewPager+fragment配合这个控件做的一个图片浏览效果
前面10几个可能内存还能接受,后面滑动到了20几个的时候就开始OOM异常了。
请教优化方案。谢谢
google 原生的图库加载出来同一张图片放大比较清晰,有没有什么可以优化的
一张图放大缩小这样到处滚动,大图也会OOM
真图块scale不为1,这个要想办法解决吧,EXIF的旋转方向我自己是解决了
长图怎样实现缩放呢?求解。而且,缩放过程没有缩放动画,看起来很僵硬
我在多次加载不同的大图之后,发现最后OOM了,如何进行处理和避免?
缩放到最下 比例时 可以类似photoview 有回弹效果吗
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.