public class FresoiUrl {
public static Context mContext;
public static void inisliza(Context context) {
mContext =context;
//自定义缓存路径
DiskCacheConfig.Builder builder = DiskCacheConfig.newBuilder(context);
builder.setBaseDirectoryPath(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/images"));
DiskCacheConfig diskCacheConfig = builder.build();
//配置Config
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(context).setDownsampleEnabled(true)
.setMainDiskCacheConfig(diskCacheConfig)
.build();
//注册Fresco
Fresco.initialize(context, config);
}
//以高斯模糊显示。
public static void showUrlBlur(SimpleDraweeView draweeView, String url, int iterations, int blurRadius) {
try {
//加载uri
Uri uri = Uri.parse(url);
//ImageRequestBuilder 图片的复用 多图的请求
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
//设置后处理器
.setPostprocessor(new IterativeBoxBlurPostProcessor(iterations, blurRadius))
.build();
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(draweeView.getController())
.setImageRequest(request)
.build();
draweeView.setController(controller);
} catch (Exception e) {
e.printStackTrace();
}
}
// 基础加载图片
public static void setTu(String url,SimpleDraweeView simpleDraweeView){
Uri uri = Uri.parse(url);
simpleDraweeView.setImageURI(uri);
}
//渐进式加载图片
public static void setJianJin(String url, SimpleDraweeView simpleDraweeView){
Uri uri = Uri.parse(url);
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
.setProgressiveRenderingEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request)
.setOldController(simpleDraweeView.getController())
.build();
simpleDraweeView.setController(controller);
}
/**
* 圆角图片
* url 图片路径
* simpleDraweeView 控件
* radius 角度
* color 描边线颜色
* width 描边线宽度
*/
public static void setYuanJiao(String url,SimpleDraweeView simpleDraweeView,float radius,int color,float width){
Uri uri = Uri.parse(url);
RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
if (width > 0f) {
roundingParams.setBorder(color, width);//描边线
}
roundingParams.setCornersRadius(radius);//总体圆角
simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
simpleDraweeView.setImageURI(uri);
}
/**
* 圆角图片
* 可控四角角度
* url 图片路径
* simpleDraweeView 控件
* topLeft 左上角
* topRight 右上角
* bottomRight 右下角
* bottomLeft 左下角
* color 描边线颜色
* width 描边线宽度
*/
public static void setYuanJiao(String url,SimpleDraweeView simpleDraweeView,float topLeft, float topRight, float bottomRight, float bottomLeft,int color,float width){
Uri uri = Uri.parse(url);
RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
if (width > 0f) {
roundingParams.setBorder(color, width);//描边线
}
roundingParams.setCornersRadii(topLeft,topRight,bottomRight,bottomLeft);//各角不同圆角
simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
simpleDraweeView.setImageURI(uri);
}
//圆形图片
public static void setYuanQuan(String url,SimpleDraweeView simpleDraweeView,int color,float width){
if(url==null){
simpleDraweeView.setImageURI(url);
return;
}
Uri uri = Uri.parse(url);
RoundingParams roundingParams = RoundingParams.fromCornersRadius(0f);
if (width > 0f) {
roundingParams.setBorder(color, width);//描边线
}
roundingParams.setRoundAsCircle(true);//圆形
simpleDraweeView.getHierarchy().setRoundingParams(roundingParams);
simpleDraweeView.setImageURI(uri);
}
// Gif动态图片
public static void setDongTu(String url,SimpleDraweeView simpleDraweeView){
Uri uri = Uri.parse(url);
DraweeController controller1 = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setTapToRetryEnabled(true)
.setAutoPlayAnimations(true)//设置为true将循环播放Gif动画
.setOldController(simpleDraweeView.getController())
.build();
simpleDraweeView.setController(controller1);
}
public class MainActivity extends AppCompatActivity {
private SimpleDraweeView mDraweeView;
public static String mGifUrl = "http://img.zcool.cn/community/0139505792e5fc0000018c1bbb7271.gif" ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化控件
mDraweeView = findViewById(R.id.img);
//加载网络图片的网址
/* Uri uri = Uri.parse("http://img3.imgtn.bdimg.com/it/u=3594232439,2220325256&fm=26&gp=0.jpg");
//加载图片
mDraweeView.setImageURI(uri);*/
FresoiUrl.setJianJin(mGifUrl,mDraweeView);
// FresoiUrl.setDongTu(mGifUrl,mDraweeView);
}
public class App extends Application {
// private static App app;
@Override
public void onCreate() {
super.onCreate();
FresoiUrl.inisliza(this);