依赖
compile 'com.facebook.fresco:fresco:1.5.0'
compile 'com.facebook.fresco:animated-gif:1.5.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
注册
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}
主布局
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="bwei.com.tupa.MainActivity">
<!--<com.facebook.drawee.view.SimpleDraweeView-->
<!--android:id="@+id/sdv"-->
<!--android:layout_width="150dp"-->
<!--android:layout_height="150dp" />-->
<android.support.v7.widget.RecyclerView
android:id="@+id/rlv"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
子布局
<?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:layout_width="wrap_content"
android:layout_height="150dp">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/sdv"
android:layout_width="123dp"
android:layout_height="123dp"
app:placeholderImage="@mipmap/ic_launcher" />
</LinearLayout>
主界面
public class MainActivity extends AppCompatActivity {
private SimpleDraweeView mSdv;
private RecyclerView mRlv;
private List<Uri> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
inXun();
}
private void inXun() {
mRlv.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));
list = new ArrayList<>();
String ss = "http://c.hiphotos.baidu.com/image/w%3D500/sign=64d9fd84bc003af34dbadc60052bc619/37d12f2eb9389b501dc8fddf8f35e5dde7116e03.jpg";
for (int i = 0; i < 10; i++) {
Uri uri = Uri.parse(ss);
list.add(uri);
}
Recycler recycler = new Recycler(list, this);
mRlv.setAdapter(recycler);
}
private void initView() {
mRlv = (RecyclerView) findViewById(R.id.rlv);
// String ss = "http://c.hiphotos.baidu.com/image/w%3D500/sign=64d9fd84bc003af34dbadc60052bc619/37d12f2eb9389b501dc8fddf8f35e5dde7116e03.jpg";
// mSdv = (SimpleDraweeView) findViewById(R.id.sdv);
// DraweeController controller = Fresco.newDraweeControllerBuilder()
// .setUri(Uri.parse(ss))
// .setAutoPlayAnimations(true)
// .build();
// mSdv.setController(controller);
}
}
RecyclerView
public class Recycler extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<Uri> list;
private Context context;
public Recycler(List<Uri> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
return new MyviewHodler(view);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
MyviewHodler myviewHodler = (MyviewHodler) holder;
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(list.get(position))
.setAutoPlayAnimations(true)
.build();
myviewHodler.sdv.setController(controller);
}
@Override
public int getItemCount() {
return list.size();
}
public class MyviewHodler extends RecyclerView.ViewHolder {
private final SimpleDraweeView sdv;
public MyviewHodler(View itemView) {
super(itemView);
sdv = itemView.findViewById(R.id.sdv);
}
}
}
到这就完了,
http://blog.youkuaiyun.com/Yw59792649/article/details/78658320这篇是Fresco加载Gif最简单的版本