先导依赖
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" />
<com.facebook.drawee.view.SimpleDraweeView 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); } }); }}
