一、图片显示
1、gifview 、 gifview2
这两个项目是同一人开发的,用于显示gif动画,纯java解码 ,gif图片过大会产生OOM。
2、android-gif-drawable
这个也是用于解码显示gif的类库,采用jni解码,大GIF也不会产生oom,完美运行。
不仅提供了GifImageView,还提供了一个GifDrawable,可以直接attach到某个ImageView上。强烈推荐使用!!!
BTW: jar包中的GifDrawable不是public,需要修改源码才能被外部访问。
3、PhotoView
PhotoView 是一款扩展自Android ImageView ,支持通过单点/多点触摸来进行图片缩放的智能控件。
特性:
支持单点/多点触摸,即时缩放图片;
支持平滑滚动;
在滑动父控件下能够运行良好;(例如:ViewPager)
使用比较简单,提供了一个名为PhotoView的控件,可以直接像普通ImageView那样使用。
但因为项目中图片是一次性全部加载的,所以当显示的图片较大时,在android3.0及以上开启硬件加速的设备上无法显示。
11-10 19:52:33.372: W/OpenGLRenderer(10728): Bitmap too large to
be uploaded into a texture (440×10919, max=4096×4096)
解决方法是:在onCreate中,将PhotoView控件的硬件加速关闭:
PhotoViewimageView=(PhotoView)view.findViewById(R.id.imageView);if(VERSION.SDK_INT>=11){//android3.0以上禁止硬件加速,否则大图显示不了imageView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);}
这样虽然可以显示大图片,但是图片长度较长时,缩放不能达到最大宽度.
显示长图宽度不能缩放到最大宽度的解决方案如下:photoView.setMaximumScale(30.0f);
因为PhotoView的默认的maxScale为3.0,导致长图片达到最大缩放级别时长度或者宽度也无法充满屏幕。
二、ListView
1、XListView
让ListView支持 “pull down refresh” 和 “pull up load”
How to use:
Just replace ListView by me.maxwin.XListView.唯一美中不足的是”pull down
refresh” 和 “pull up load”必须通过手势下拉或者上拉触发,没有提供API接口。
比方说程序刚开启需要更新列表,这个时候无法通过代码设置listview呈现出pull down refresh的进度条。
还有就是当前pull down refresh尚未完成时,如果再次pull
down没有做过滤控制,必须自己写代码来控制。