首先我们要先将依赖导入工程
compile 'com.android.support:mediarouter-v7:25.0.0' compile 'com.android.support:appcompat-v7:25.0.0' compile 'com.android.support:recyclerview-v7:25.0.0'//recyclerxview 的依赖
compile 'com.jakewharton:butterknife:8.2.1' apt 'com.jakewharton:butterknife-compiler:8.2.1'//butterknife依赖//可以不加 compile 'com.github.bumptech.glide:glide:4.3.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.3.1'//glide依赖要在项目工程中配置文件
mavenCentral()
maven { url 'https://maven.google.com' }
compile 'com.liaoinstan.springview:library:1.2.5'//Springview依赖
记住要加网路权限
recycle人viewadapter类代码
package test.bawei.com.recyclerview_devx; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ImageView; import com.bumptech.glide.Glide; import java.util.List; import java.util.Random; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by lenovo on 2017/11/8. */ public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ImageViewHolder> { private Context context; private List<String> list; //图片的宽度 private int itemWidth; //构造方法 public RecyclerViewAdapter(Context context, List<String> list) { this.context = context; this.list = list; WindowManager wm = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); itemWidth = width / 3 ; } //创建viewhodle @Override public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //创建一个view View view = LayoutInflater.from(context).inflate(R.layout.layout_item, null); return new ImageViewHolder(view); } //绑定view显示数据 @Override public void onBindViewHolder(ImageViewHolder holder, final int position) { //设置图片的宽和高 宽不变 高随机数变化 int itemheight=300; itemheight=new Random().nextInt(500); if(itemheight<300){ itemheight=300; }else{ } ViewGroup.LayoutParams params= holder.itemImageview.getLayoutParams(); params.width=itemWidth; params.height=itemheight; //实现瀑布流的宽和高 holder.itemImageview.setLayoutParams(params); //显示图片 Glide.with(context).load(list.get(position)).into(holder.itemImageview); holder.itemImageview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(listener!=null){ listener.onClick(view,position); } } }); holder.itemImageview.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { listener.longClick(view,position); return false; } }); } //获取条目数量 @Override public int getItemCount() { return list.size(); } //创建viewhoder static class ImageViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.item_imageview) ImageView itemImageview; public ImageViewHolder(View itemView) { super(itemView); ButterKnife.bind(this, itemView); } } //接口的构造方法 private Listener listener; public void setlistener( Listener listener){ this.listener=listener; } interface Listener{ //点击事件 public void onClick(View view, int position); //长按事件 public void longClick(View view, int position); } }mainactivity代码
package test.bawei.com.recyclerview_devx; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import com.liaoinstan.springview.container.DefaultFooter; import com.liaoinstan.springview.container.DefaultHeader; import com.liaoinstan.springview.widget.SpringView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private List<String> list = new ArrayList<>(); private SpringView springView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.recyclerview); springView= (SpringView) findViewById(R.id.springview); //网络图片 list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1510151318195&di=9dab6ff3b96cfc8f1a93f76accf92feb&imgtype=0&src=http%3A%2F%2Fimg4.duitang.com%2Fuploads%2Fitem%2F201412%2F09%2F20141209202314_GsTfS.jpeg"); list.add("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1510151318194&di=5fba64180a128512c6b8aea2d682bdc2&imgtype=0&src=http%3A%2F%2Fcdnq.duitang.com%2Fuploads%2Fitem%2F201505%2F02%2F20150502102726_SyRFt.thumb.700_0.jpeg"); list.add("http://img2.woyaogexing.com/2017/10/31/360684e5b3b309f4!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/10/31/6ef101cfa2ce67d6!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/10/31/a85f05e75e47234b!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/10/31/e5cbbe479fb32c91!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/10/30/a8a77d26aef79efa!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/09/07/9e719ecc21337900!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/09/07/67bf8c3ce94dca68!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/09/07/18dd72f8c958322f!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/09/09/d157a4af484d62ef!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/08/27/709a44ee60b29c76!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/08/17/cd2d0e1b95d99fb1!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/07/25/358351ccdfd44854!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/07/25/2e2f93b158c790bd!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/07/03/24a533727f8018ec!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/07/03/264251231b3b0e6f!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/07/01/3f2c049264133436!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/07/01/4f10cdc333c14c25!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/06/28/3725dd15ab951495!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/06/27/bffcbf56edc66f5c!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/06/27/bffcbf56edc66f5c!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/05/29/62b06984158a2d6a!600x600.jpg"); list.add("http://img2.woyaogexing.com/2017/05/24/39e284101366d3f3!600x600.jpg"); // recyclerView.setAdapter(new RecyclerViewAdapter(this,list)); RecyclerViewAdapter adapter = new RecyclerViewAdapter(this, list); recyclerView.setAdapter(adapter); adapter.setlistener(new RecyclerViewAdapter.Listener() { @Override public void onClick(View view, int position) { startActivity(new Intent(MainActivity.this, Main2Activity.class)); } @Override public void longClick(View view, int position) { startActivity(new Intent(MainActivity.this, Main2Activity.class)); } }); springView.setHeader(new DefaultHeader(this)); springView.setFooter(new DefaultFooter(this)); springView.setListener(new SpringView.OnFreshListener() { @Override public void onRefresh() { //下拉 springView.onFinishFreshAndLoad(); } @Override public void onLoadmore() { //上 springView.onFinishFreshAndLoad(); } }); adapter.notifyDataSetChanged(); //布局管理器 //listview 的布局效果 recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)); //九宫格的布局效果 //recyclerView.setLayoutManager(new GridLayoutManager(this,5)); //瀑布流布局 // recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL)); //实现下划线 //recyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this).color(Color.BLUE).build()); } }
布局写上就搞定了
<com.liaoinstan.springview.widget.SpringView android:layout_width="match_parent" android:id="@+id/springview" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v7.widget.RecyclerView> </com.liaoinstan.springview.widget.SpringView>
<ImageView android:id="@+id/item_imageview" android:layout_width="wrap_content" android:layout_height="wrap_content" />