Android瀑布流

来源:互联网 发布:淘宝无线端优惠券 编辑:程序博客网 时间:2024/06/16 04:32
//最外面嵌套RelativeLayout布局
<android.support.v7.widget.RecyclerView    android:id="@+id/rv"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_margin="10dp"/>
//Rvitem布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:padding="5dp"    android:orientation="vertical">    <ImageView        android:id="@+id/iv"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:adjustViewBounds="true"        android:scaleType="fitXY"        android:padding="10dp"/></LinearLayout>
//加载网络图片的工具类
public class ImageWorl extends Application {    @Override    public void onCreate() {        super.onCreate();        //创建ImageLoaderConfiguration        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this).build();        //初始化ImageLoader        ImageLoader.getInstance().init(config);    }}
//网络图片来源
public class ImageUtil {    public final static String[] imageUrls = new String[]{            "http://img.my.csdn.net/uploads/201508/05/1438760758_3497.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760758_6667.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760757_3588.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760756_3304.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760755_6715.jpeg",            "http://img.my.csdn.net/uploads/201508/05/1438760726_5120.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760726_8364.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760725_4031.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760724_9463.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760724_2371.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760707_4653.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760706_6864.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760706_9279.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760704_2341.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760704_5707.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760685_5091.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760685_4444.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760684_8827.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760683_3691.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760683_7315.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760663_7318.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760662_3454.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760662_5113.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760661_3305.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760661_7416.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760589_2946.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760589_1100.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760588_8297.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760587_2575.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760587_8906.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760550_2875.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760550_9517.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760549_7093.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760549_1352.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760548_2780.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760531_1776.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760531_1380.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760530_4944.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760530_5750.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760529_3289.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760500_7871.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760500_6063.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760499_6304.jpeg",            "http://img.my.csdn.net/uploads/201508/05/1438760499_5081.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760498_7007.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760478_3128.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760478_6766.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760477_1358.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760477_3540.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760476_1240.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760446_7993.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760446_3641.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760445_3283.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760444_8623.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760444_6822.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760422_2224.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760421_2824.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760420_2660.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760420_7188.jpg",            "http://img.my.csdn.net/uploads/201508/05/1438760419_4123.jpg",    };}
//Activity页面
public class MainActivity extends AppCompatActivity {    private RecyclerView mRv;    private List<String> list = new ArrayList<>();    private RvAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mRv = (RecyclerView) findViewById(R.id.rv);        StaggeredGridLayoutManager stagger = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);        mRv.setLayoutManager(stagger);        for (String url: ImageUtil.imageUrls) {            list.add(url);        }        adapter = new RvAdapter(list, this);        mRv.setAdapter(adapter);    }}
//适配器
public class RvAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    private List<String> list;    private Context context;    public RvAdapter(List<String> list, Context context) {        this.list = list;        this.context = context;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = View.inflate(context, R.layout.rvitem, null);        return new MyViewHolder(view);    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        String str = list.get(position);        MyViewHolder holder1 = (MyViewHolder) holder;        ImageLoader.getInstance().displayImage(str,holder1.iv);        holder1.iv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(context, GoodsActivity.class);                context.startActivity(intent);            }        });    }    @Override    public int getItemCount() {        return list.size();    }    class MyViewHolder extends RecyclerView.ViewHolder{        ImageView iv;        public MyViewHolder(View itemView) {            super(itemView);            iv = (ImageView) itemView.findViewById(R.id.iv);            int width = ((Activity) context).getWindowManager().getDefaultDisplay().getWidth();            ViewGroup.LayoutParams params = iv.getLayoutParams();            //设置图片的相对于屏幕的宽高比            params.width = width/3;            params.height =  (int) (200 + Math.random() * 400) ;            iv.setLayoutParams(params);        }    }}