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中
http://download.csdn.net/detail/zhaihaohao1/9894630package 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; }}
源码下载
阅读全文
0 0
- Android中Recyclerview使用12----实现瀑布流样式
- Android中Recyclerview使用1----实现ListView,GridView,瀑布流样式
- Android使用RecyclerView实现瀑布流
- 【Android-RecyclerView】瀑布流实现
- 【Android-RecyclerView】瀑布流实现
- Android RecyclerView实现瀑布流
- Android中使用RecyclerView和CardView实现瀑布流效果(StaggeredGrid)
- (4.1.11.1)Android中使用RecyclerView和CardView实现瀑布流效果(StaggeredGrid)
- Android中利用RecyclerView实现瀑布流效果
- Android中RecyclerView实现瀑布流图片显示
- Android RecyclerView 实现瀑布流效果
- android---UI---RecyclerView实现瀑布流(1)
- android---UI---RecyclerView实现瀑布流(2)
- Android---RecyclerView之简单瀑布流实现
- 使用RecyclerView实现瀑布流效果
- android 中瀑布流样式想法与实现
- Android RecyclerView 的基本使用--瀑布流
- android RecyclerView 瀑布流使用详解
- 3路排序算法
- POJ 2718 暴力
- 自动化测试学习
- springmvc之Jackson实现po对象与Json字符串的互转
- 关于弹性布局flex属性详解
- Android中Recyclerview使用12----实现瀑布流样式
- 6个轻松用好大数据的绝密秘籍
- Unity刚体、碰撞器、实验和总结
- 数据结构-二叉堆
- 飞秋(FeiQ)关闭好友上下线提示功能
- MFC对话框里利用CHtmlView加载界面(二)————MFC调用JaveScript
- 画图解释 SQL join 语句
- oracle删除用户以及用户数据
- 【Mybatis】深入浅出Mybatis(十二)——逆向工程后增删改查调用