recyclerview瀑布流_图片二次采样
来源:互联网 发布:淘宝页面怎么设计 编辑:程序博客网 时间:2024/05/22 10:48
import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.drawable.BitmapDrawable;import android.os.Build;import android.support.annotation.RequiresApi;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.StaggeredGridLayoutManager;import android.util.DisplayMetrics;import android.view.View;import android.view.ViewGroup;import android.widget.LinearLayout;import android.widget.TextView;import java.util.ArrayList;import java.util.List;import java.util.Random;public class MainActivity extends AppCompatActivity { RecyclerView rv; List<String> list; int w_screen; int h_screen; int[] array = {R.mipmap.a, R.mipmap.b}; Bitmap[] imgArray = new Bitmap[2]; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindowSize(); rv = (RecyclerView) findViewById(R.id.rv); getBitmapArray(); initRV(); } private void getWindowSize() { DisplayMetrics dm =getResources().getDisplayMetrics(); w_screen = dm.widthPixels; h_screen = dm.heightPixels; } private void getBitmapArray() { //使用循环遍历目标图片数组 把每一张图片都进行2次采样 for (int i = 0; i < array.length; i++) { BitmapFactory.Options opt = new BitmapFactory.Options(); //该参数是true 代表是获取图片信息 不真实的解码图片 opt.inJustDecodeBounds = true; BitmapFactory.decodeResource(getResources(),array[i],opt); //缩放的比例 要把宽度缩放成屏幕的一般 opt.inSampleSize = opt.outWidth * 2 / w_screen; opt.inJustDecodeBounds = false; Bitmap b = BitmapFactory.decodeResource(getResources(), array[i], opt); imgArray[i] = b; } } private void initRV() { initData(); StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL); rv.setLayoutManager(manager); MyRVAdapter adapter = new MyRVAdapter(); rv.setAdapter(adapter); } private void initData() { list = new ArrayList<String>(); for (int i = 0; i < 100; i++) { list.add("position" + i); } } class MyRVAdapter extends RecyclerView.Adapter<MyRVAdapter.MyViewHolder>{ Random r = new Random(); @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(MainActivity.this, R.layout.rv_item, null); MyViewHolder holder = new MyViewHolder(view); return holder; } @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv.setText(list.get(position)); //因为是模拟显示瀑布流 所有使用随机数的形式来模拟 //真正开发时使用的是网络图片 可以直接使用 网络框架例如 ImageLoader 往ImageView上加在图片// LinearLayout.LayoutParams param = (LinearLayout.LayoutParams) holder.tv.getLayoutParams();// param.height = r.nextInt(200) + 50;// holder.tv.setLayoutParams(param);// holder.tv.setBackgroundResource(array[r.nextInt(2)]); holder.tv.setBackground(new BitmapDrawable(getResources(),imgArray[r.nextInt(2)])); } @Override public int getItemCount() { return list == null ? 0 : list.size(); } public class MyViewHolder extends RecyclerView.ViewHolder{ TextView tv; public MyViewHolder(View itemView) { super(itemView); tv = itemView.findViewById(R.id.tv); } } }}
阅读全文
0 0
- recyclerview瀑布流_图片二次采样
- RecyclerView实现图片瀑布流
- RecyclerView 瀑布流显示图片
- RecyclerView 瀑布流显示图片
- 图片的二次采样
- 图片的二次采样
- android图片二次采样
- 图片二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- 图片的二次采样
- bitmap 图片二次采样
- 图片压缩 二次采样
- 图片的二次采样
- 图片处理-二次采样
- 图片二次采样
- 图片的二次采样
- 动态规划 最长上升子序列 nlogn
- [字典树上建回文自动机] ICPC Preparatory Series by Team Akatsuki. Three Palindromes
- JAVA 死锁,死锁产生的原因,产生死锁的必要条件和解决死锁的方法
- 轮播图-------------PagerAdapter适配器
- [MIPS汇编语言]输入输出演示(数组)
- recyclerview瀑布流_图片二次采样
- RecyclerView(多条目)
- Objective-C对象之类对象和元类对象
- AngularJS1.5 以上版本
- 自定义控件_画圆
- 算法:输出华氏和摄氏的温度对照表
- 头部为横向滑动,下面Fragment和ViewPager
- 个人怎么申请微信公众号-微信公众号使用教程33
- Android侧滑菜单DrawerLayout