需要导入依赖
image-loader
butterknife
butterknife-compile
recyclerView
加一个网络请求权限
layout_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:src="@mipmap/ic_launcher" android:scaleType="centerCrop" android:id="@+id/item_imageview" android:layout_width="match_parent" android:layout_height="100dp" /> <TextView android:background="@color/colorPrimary" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/item_textview"/> </LinearLayout>
activity_main.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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
IApplication.java
package com.lianxi2; import android.app.Application; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; /** * Created by muhanxi on 17/11/8. */ public class IApplication extends Application { @Override public void onCreate() { super.onCreate(); ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(configuration ); } }
RecyclerViewAdapter.java
package com.lianxi2; 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 android.widget.LinearLayout; import android.widget.TextView; import java.util.List; import java.util.Random; import butterknife.BindView; import butterknife.ButterKnife; import static java.security.AccessController.getContext; /** * Created by muhanxi on 17/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 ; } //创建ViewHolder @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) { // 显示图片 // Glide.with(context).load("https://car3.autoimg.cn/cardfs/product/g18/M12/51/43/1024x0_1_q87_autohomecar__wKgH2VjnqU-AHth4AAiGLIUNYJk190.jpg").into(holder.itemImageview); ViewGroup.LayoutParams params = holder.itemImageview.getLayoutParams() ; int itemHeight = 300 ; itemHeight = new Random().nextInt(500); if(itemHeight < 300){ itemHeight = 300 ; } params.width = itemWidth ; params.height = itemHeight ; holder.itemImageview.setLayoutParams(params); holder.itemImageview.setImageResource(R.mipmap.ic_launcher); // ImageLoader.getInstance().displayImage(list.get(position),holder.itemImageview); holder.textView.setText(position+""); 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(); } static class ImageViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.item_imageview) ImageView itemImageview; @BindView(R.id.item_textview) TextView textView; public ImageViewHolder(View itemView) { super(itemView); ButterKnife.bind(this, itemView); // itemImageview = itemView.findViewById(R.id.item_imageview); } } private Listener listener ; public void setIListener(Listener listener){ this.listener = listener; } public interface Listener { public void onClick(View view, int position); public void longClick(View view, int position); } }
TestAdapter.java
package com.lianxi2; import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; /** * Created by muhanxi on 17/11/8. */ public class TestAdapter extends RecyclerView.Adapter { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { } @Override public int getItemCount() { return 0; } }
MainActivit.java
package com.lianxi2;
import android.app.Activity;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
private RecyclerView recyclerView;
private List<String> list = new ArrayList<>();
@RequiresApi(api = Build.VERSION_CODES.GINGERBREAD)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
list.add("http://f10.baidu.com/it/u=2881303562,336932824&fm=72");
list.add("http://f11.baidu.com/it/u=681755471,2018070071&fm=72");
list.add("http://f10.baidu.com/it/u=960650584,863938083&fm=72");
list.add("http://img0.imgtn.bdimg.com/it/u=783060973,4278100629&fm=27&gp=0.jpg");
list.add("http://img1.imgtn.bdimg.com/it/u=3743124979,3234956668&fm=27&gp=0.jpg");
list.add("http://img4.imgtn.bdimg.com/it/u=3468613159,957707785&fm=27&gp=0.jpg");
list.add("http://img3.imgtn.bdimg.com/it/u=2971205354,485034289&fm=27&gp=0.jpg");
list.add("http://f10.baidu.com/it/u=2881303562,336932824&fm=72");
list.add("http://f11.baidu.com/it/u=681755471,2018070071&fm=72");
list.add("http://f10.baidu.com/it/u=960650584,863938083&fm=72");
list.add("http://img0.imgtn.bdimg.com/it/u=783060973,4278100629&fm=27&gp=0.jpg");
list.add("http://img1.imgtn.bdimg.com/it/u=3743124979,3234956668&fm=27&gp=0.jpg");
list.add("http://img4.imgtn.bdimg.com/it/u=3468613159,957707785&fm=27&gp=0.jpg");
list.add("http://img3.imgtn.bdimg.com/it/u=2971205354,485034289&fm=27&gp=0.jpg");
// recyclerView.setLayoutManager(new GridLayoutManager(this,5));
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, LinearLayout.VERTICAL));
RecyclerViewAdapter adapter = new RecyclerViewAdapter(this, list);
// recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
recyclerView.setAdapter(adapter);
adapter.setIListener(new RecyclerViewAdapter.Listener() {
@Override
public void onClick(View view, int position) {
Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
@Override
public void longClick(View view, int position) {
}
});
// recyclerView.setOnI
// recyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this)
// .color(Color.RED).build());
}
}