封装Fresco

依赖
implementation ‘com.facebook.fresco:drawee:1.10.0’
implementation ‘com.facebook.fresco:fresco:1.11.0’
implementation ‘com.facebook.fresco:animated-gif:1.10.0’//动图所需依赖

权限


布局

<com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/imageView"
        android:layout_marginLeft="20dp"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="center"
        fresco:placeholderImage="@mipmap/ic_launcher"
        />
public class FrescoUtil {

    /**
     *基础加载图片
     * @param url 图片路径
     * @param simpleDraweeView 控件
     */
    public static void setPic(String url, SimpleDraweeView simpleDraweeView){
        Uri uri=Uri.parse(url);
        simpleDraweeView.setImageURI(uri);
    }
    //渐进式加载图片
    public static void setGradual(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);
    }
    //圆角
    public static void Corner(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);
        }
    }
    //动图
    public static void setGif(String url,SimpleDraweeView simpleDraweeView){
        Uri uri=Uri.parse(url);
        DraweeController controller=Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setTapToRetryEnabled(true)
                .setAutoPlayAnimations(true)
                .setOldController(simpleDraweeView.getController())
                .build();
        simpleDraweeView.setController(controller);
    }
}

在这里插入图片描述

在这里插入图片描述
初始化

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        File sd = Environment.getExternalStorageDirectory();
        String mPath = sd.getPath() + "/image";
        File file = new File(mPath);
        if (!file.exists()) {
            file.mkdir();
        }
        Fresco.initialize(this,ImagePipelineConfig.newBuilder(App.this)
                .setMainDiskCacheConfig(
                        DiskCacheConfig.newBuilder(this)
                                .setBaseDirectoryPath(file)
                                .build()
                )
                .build()
        );
    }
}

//在MainActivity应用

public class MainActivity extends AppCompatActivity {

    private SimpleDraweeView imageView;
    private String uri="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1523079111408&di=7783555b20885592a8034c6e729a6414&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01ea90595f5ca4a8012193a3d93648.jpeg";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = findViewById(R.id.imageView);
        FrescoUtil.setPic(uri,imageView);
        FrescoUtil.Corner(uri,imageView,50,Color.RED,2);
        FrescoUtil.setGif(uri,imageView);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值