-
Notifications
You must be signed in to change notification settings - Fork 225
XImage第三方图片框架隔离
Spring edited this page Aug 14, 2017
·
3 revisions
在众多图片加载框架中,我们的存在是为了全局配置,方便替换。
- 如果想使用XRecyclerViewAdapter直接加载图片链接,需要配置xImage
- 由于Fresco是直接在布局文件使用,所以无法兼容到,Picasso,Glide,xutils等等通过代码实现的都能应用到
public class App extends XApplication {
@Override
public void onCreate() {
super.onCreate();
/**
* 初始化全局图片加载框架
* GlideImageLoader为你的图片加载框架实现类(你可以自行实现,这里就是共glide举例)
*/
XFrame.initXImageLoader(new GlideImageLoader(getApplicationContext()));
}
}
XImage.getInstance().load(view,imageUrl);
XImage.getInstance().load(view,imageUrl,defaultImage);
XImage.getInstance().load(view,imageUrl,transformation);//加载指定形状的图片
public class GlideImageLoader implements ImageLoader {
private Context mContext;
//将形状的实现类放在这里,是为了更换框架时,只用修改这就行了,你也可以自己思考更优方案
//public static GlideCircleTransform circleTransform;
public GlideImageLoader(Context context) {
this.mContext=context;
//circleTransform=new GlideCircleTransform(mContext);
}
@Override
public void load(ImageView imageView, Object imageUrl) {
Glide.with(mContext)
.load(imageUrl)
.crossFade()
.into(imageView);
}
@Override
public void load(ImageView imageView, Object imageUrl, int defaultImage) {
Glide.with(mContext)
.load(imageUrl)
.crossFade()
.placeholder(defaultImage)
.into(imageView);
}
//加载指定形状的图片,不需要留空就行了
@Override
public void load(ImageView imageView, Object imageUrl, Object transformation) {
Glide.with(mContext)
.load(imageUrl)
.crossFade()
//这里需要强转成当前框架的实现类型,这里是glide举例
.transform((BitmapTransformation) transformation)
.into(imageView);
}
}
从小的功能做起,只做必要的封装,让开发更加简单 ———— XFrame