recycleview瀑布流Item适应图片
来源:互联网 发布:国动通信网络招聘 编辑:程序博客网 时间:2024/05/22 17:43
package com.example.pei.recyclerviewdemo;import android.app.Activity;import android.content.Context;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.drawable.Drawable;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.Display;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.Toast;/** * Created by */public class RVAdapter extends RecyclerView.Adapter<RVAdapter.ViewHolder>{ int a[] = { R.mipmap.d, R.mipmap.e, R.mipmap.f, R.mipmap.d, R.mipmap.e, R.mipmap.f, R.mipmap.d, R.mipmap.e, R.mipmap.f }; Context mContext; public RVAdapter(Context context) { mContext = context; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.item_image,null); ViewHolder viewHolder = new ViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(ViewHolder holder, final int position) { holder.mImageView.setImageResource(a[position]); holder.mImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("RVAdapter", "position:..." + position); } }); ViewGroup.LayoutParams params = holder.mImageView.getLayoutParams(); Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(),a[position]); int width = bitmap.getWidth(); int height = bitmap.getHeight(); //拿到屏幕宽 int screenWidth = ((Activity) holder.mImageView.getContext()) .getWindowManager().getDefaultDisplay().getWidth(); float aaa = (float)screenWidth/3; //图片压缩比例 float bili = (float) (width/aaa); params.height = (int) (height/bili); params.width = (int) (width/bili); holder.mImageView.setLayoutParams(params); } @Override public int getItemCount() { return a.length; } public class ViewHolder extends RecyclerView.ViewHolder { private ImageView mImageView; public ViewHolder(View itemView) { super(itemView); mImageView = (ImageView) itemView.findViewById(R.id.image_main); } }}
为了防止以瀑布流显示图片的时候,图片会有空白区域.
本来以为会出现特殊情况导致一列的图片超过其他列图片高度太多,后来发现不会发生,recycleview已经考虑到了这个.nice
item的position不会因为recycleview的自动排列而乱了数组中的位置
0 0
- recycleview瀑布流Item适应图片
- RecycleView 瀑布流 item 随意拖拽(ItemTouchHelper) 数据交换
- RecycleView实现item错落且高度不同的瀑布流
- RecycleView实现瀑布流
- Recycleview实现瀑布流
- recycleview实现瀑布流
- recycleView 瀑布流
- Android RecycleView瀑布流
- RecycleView 瀑布流 及glide网络加载图片
- RecycleView 实现瀑布流效果
- 瀑布流效果RecycleView+CardView
- 瀑布流 RecycleView 的 StaggeredGridLayoutManager?
- 安卓开发——问题:RecycleView做瀑布流滚动时,已加载item的位置来回变动
- recycleview 的item图片倒影效果
- <八>RecycleView+CardView实现瀑布流(2、加载网络图片)
- <八>RecycleView+CardView实现瀑布流(2、加载网络图片)
- RecycleView 实现瀑布流 添加分隔
- RecycleView的使用(包括瀑布流)
- JavaScript的异步运行机制
- Picasso源码的简单解析(一)
- Android中关于setLatestEventInfo()过时以及构建Notification的解决方法
- SqlSerVer 列与逗号分隔字符串 互相转换
- 检测连接头卡口装配质量
- recycleview瀑布流Item适应图片
- 想要网站增加更多的流量必须用手机用户开始下手
- angular-validation 使用方法
- redis的持久化、备份、容灾
- 事件流
- 如何直观的解释back propagation算法(三)
- Linux的slab分配器
- 【Java学习笔记】16:线程的协调
- C# WinForm开发系列之自定义无边框窗体(最大化,最小化,关闭,拉伸和移动的相关知识)