Android中Recyclerview使用12----实现瀑布流样式

来源:互联网 发布:linux编辑模式怎么换行 编辑:程序博客网 时间:2024/06/05 04:55

效果图:


huild.grade中

apply plugin: 'com.android.application'android {    compileSdkVersion 23    buildToolsVersion "24.0.0"    defaultConfig {        applicationId "android.test.com.recyclerview1"        minSdkVersion 14        targetSdkVersion 23        versionCode 1        versionName "1.0"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.4.0'    compile 'com.android.support:recyclerview-v7:23.4.0'}

MainActivity中
package android.test.com.recyclerview1;import android.app.Activity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import java.util.ArrayList;import java.util.List;/** * 实现RecyclerView的三种样式 * 瀑布流的横纵向滑动   StaggeredGridLayoutManager 瀑布就式布局管理器 */public class MainActivity extends Activity {    //    private RecyclerView mRecyclerView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);//      初始化RecyclerView        mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);//      瀑布流效果纵向滑动有2行        StaggeredGridLayoutManager staggeredGridLayoutManager= new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);        mRecyclerView.setLayoutManager(staggeredGridLayoutManager);//      获取数据,向适配器传数据,绑定适配器        List<Product> datas = initData();        HomeAdapter honmeAdapter = new HomeAdapter(MainActivity.this,datas);        mRecyclerView.setAdapter(honmeAdapter);    }    private List<Product> initData() {        List<Product>  productList=new ArrayList<Product>();        Product p1=new Product(R.mipmap.p3,"我是照片1");        productList.add(p1);        Product p2=new Product(R.mipmap.p2,"我是照片2");        productList.add(p2);        Product p3=new Product(R.mipmap.p3,"我是照片3");        productList.add(p3);        Product p4=new Product(R.mipmap.p4,"我是照片4");        productList.add(p4);        Product p5=new Product(R.mipmap.p5,"我是照片5");        productList.add(p5);        Product p6=new Product(R.mipmap.p6,"我是照片6");        productList.add(p6);        Product p7=new Product(R.mipmap.p2,"我是照片7");        productList.add(p7);        Product p8=new Product(R.mipmap.p1,"我是照片8");        productList.add(p8);        Product p9=new Product(R.mipmap.p4,"我是照片9");        productList.add(p9);        Product p10=new Product(R.mipmap.p6,"我是照片10");        productList.add(p10);        Product p11=new Product(R.mipmap.p3,"我是照片11");        productList.add(p11);        Product p12=new Product(R.mipmap.p12,"我是照片12");        productList.add(p12);        Product p13=new Product(R.mipmap.p13,"我是照片13");        productList.add(p13);        Product p14=new Product(R.mipmap.p14,"我是照片14");        productList.add(p14);        Product p15=new Product(R.mipmap.p15,"我是照片15");        productList.add(p15);        Product p16=new Product(R.mipmap.p16,"我是照片16");        productList.add(p16);        Product p17=new Product(R.mipmap.p17,"我是照片17");        productList.add(p17);        Product p18=new Product(R.mipmap.p18,"我是照片18");        productList.add(p18);        Product p19=new Product(R.mipmap.p19,"我是照片19");        productList.add(p19);        Product p20=new Product(R.mipmap.p20,"我是照片20");        productList.add(p20);        Product p21=new Product(R.mipmap.p21,"我是照片21");        productList.add(p21);        Product p22=new Product(R.mipmap.p22,"我是照片22");        productList.add(p22);        Product p23=new Product(R.mipmap.p23,"我是照片23");        productList.add(p23);        return productList;    };}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    >    <android.support.v7.widget.RecyclerView        android:id="@+id/id_recyclerview"        android:layout_width="match_parent"        android:layout_height="match_parent" >    </android.support.v7.widget.RecyclerView></LinearLayout>
HomeAdapter
package android.test.com.recyclerview1;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2016/7/11. */class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> {    private Context context;    private List<Product> list;    public HomeAdapter(Context context, List<Product> list) {        this.context=context;        this.list=list;    }    @Override    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        MyViewHolder holder = new MyViewHolder(LayoutInflater.from(                context).inflate(R.layout.item_home, parent,                false));        return holder;    }    @Override    public void onBindViewHolder(MyViewHolder holder, int position) {        holder.imageView.setImageResource(list.get(position).getImg());        holder.textView.setText(list.get(position).getTitle());    }    @Override    public int getItemCount() {        return list.size();    }    /**     * ViewHolder的类,用于缓存控件     */    class MyViewHolder extends RecyclerView.ViewHolder {        private ImageView imageView;        private TextView textView;        public MyViewHolder(View itemView){            super(itemView);            imageView= (ImageView) itemView.findViewById(R.id.masonry_item_img );            textView= (TextView) itemView.findViewById(R.id.masonry_item_title);        }    }}
item_home.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="#FFFFFF"    android:padding="5dp"    >    <!--android:adjustViewBounds="true"-->    <!--调整ImageView的界限来保持图像纵横比不变-->    <ImageView        android:id="@+id/masonry_item_img"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:adjustViewBounds="true"        android:scaleType="centerCrop"        android:layout_marginTop="0dp"        />    <TextView        android:id="@+id/masonry_item_title"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center"/></LinearLayout>
Product中
package android.test.com.recyclerview1;/** * Created by 16838 on 2017/7/11. */public class Product {    private int img;    private String title;    public Product(int img, String title) {        this.img = img;        this.title = title;    }    public int getImg() {        return img;    }    public void setImg(int img) {        this.img = img;    }    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }}

源码下载
http://download.csdn.net/detail/zhaihaohao1/9894630






阅读全文
0 0
原创粉丝点击