先导依赖
implementation 'com.facebook.fresco:fresco:1.8.1'
在xml文件里
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
tools:context="com.dash.projecttwo_1511n.MainActivity">
<Button
android:onClick="jiaZai"
android:text="fresco加载图片"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:id="@+id/drawee_view"
android:layout_width="300dp"
android:layout_height="300dp"
app:placeholderImage="@drawable/icon_placeholder"
app:placeholderImageScaleType="fitCenter"
app:actualImageScaleType="focusCrop"
app:progressBarImage="@drawable/icon_progress_bar"
app:progressBarImageScaleType="centerInside"
app:progressBarAutoRotateInterval="2000"
app:failureImage="@drawable/icon_failure"
app:failureImageScaleType="centerInside"
app:retryImage="@drawable/icon_retry"
app:retryImageScaleType="centerCrop"
app:fadeDuration="3000"
app:backgroundImage="@color/colorAccent"
app:roundedCornerRadius="50dp"
app:roundBottomLeft="true"
app:roundTopLeft="true"
app:roundBottomRight="true"
app:roundTopRight="true"
app:roundingBorderColor="#00ff00"
app:roundingBorderWidth="10dp"
/>
</LinearLayout>
初始化Fresco框架类Appliction
public class DashApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//初始化
Fresco.initialize(this);
}
}
MainActivity类
/**
* 1.占位图 app:placeholderImage="@drawable/icon_placeholder" app:placeholderImageScaleType="fitCenter"
* <p>
* 2.进度条 app:progressBarImage="@drawable/icon_progress_bar"
* app:progressBarImageScaleType="centerInside"
* app:progressBarAutoRotateInterval="2000"
* <p>
* 3.失败的 app:failureImage="@drawable/icon_failure"
* app:failureImageScaleType="centerInside"
* <p>
* 4.重试: app:retryImage="@drawable/icon_retry"
* app:retryImageScaleType="centerCrop"
* ---------需要设置新的controller对象 在controller的build对象里面设置点击重试
* 重复加载4次还是没有加载出来的时候才会显示 failureImage(失败图) 的图片
*
* 圆形:----app:roundAsCircle="true"
* 圆角:
*
*/
public class MainActivity extends AppCompatActivity {
private String imageUrl = "https://m.360buyimg.com//n0//jfs//t6700//155//2098998076//156185//6cf95035//595dd5a5Nc3a7dab5.jpg";
private SimpleDraweeView draweeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
draweeView = findViewById(R.id.drawee_view);
}
public void jiaZai(View view) {
Uri uri = Uri.parse(imageUrl);
//设置图片的路径
draweeView.setImageURI(uri);
//创建DraweeController
DraweeController controller = Fresco.newDraweeControllerBuilder()
//加载的图片URI地址
.setUri(uri)
//设置点击重试是否开启
.setTapToRetryEnabled(true)
//设置旧的Controller
.setOldController(draweeView.getController())
//构建
.build();
//设置DraweeController
draweeView.setController(controller);
}
}
加载动图的MainActivity类
public class MainActivity extends AppCompatActivity {
private String url = "http://pic1.win4000.com/wallpaper/2018-02-24/5a91339ad9ee7.jpg";
private String gif_url = "http://storage.slide.news.sina.com.cn/slidenews/77_ori/2018_10/74766_815022_377537.gif";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在set视图之前初始化Fresco框架
Fresco.initialize(this);
setContentView(R.layout.activity_main);
//
Button bt = findViewById(R.id.bt);
final SimpleDraweeView simpleDraweeView = findViewById(R.id.simple_view);
//点击事件
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//加载网路图片
// simpleDraweeView.setImageURI(url);
//加载动图,需要控制器
//控制器
AbstractDraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(gif_url)//加载的地址
.setAutoPlayAnimations(true)//开始自动播放
.build();
//给SimpleDreweeView设置控制器
simpleDraweeView.setController(controller);
}
});
}
}