RecyclerView的基本使用
1 <android.support.v7.widget.RecyclerView 2 android:id="@+id/recycleview" 3 android:paddingLeft="10dp" 4 android:paddingRight="10dp" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 android:gravity="center"> 8 </android.support.v7.widget.RecyclerView>
2、代码中使用
1 recyclerView = (RecyclerView)findViewById(R.id.recycleview); 2 recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 4)) ; //gridView网格布局 3 recyclerView.setLayoutManager(new LinearLayoutManager(this)); //listView线性布局
3、适配器
1 package com.yiba.files.adapter; 2 3 import android.content.Context; 4 import android.graphics.drawable.BitmapDrawable; 5 import android.support.v7.widget.RecyclerView; 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.view.ViewGroup; 9 import android.widget.ImageView; 10 import android.widget.RelativeLayout; 11 import android.widget.TextView; 12 13 import com.yiba.files.R; 14 import com.yiba.files.model.DataItem; 15 import com.yiba.files.util.DensityUtils; 16 import com.yiba.files.util.DeviceUtils; 17 18 import java.util.List; 19 20 /** 21 * Created by ${zyj} on 2016/1/23. 22 */ 23 public class AppAdapter extends RecyclerView.Adapter<AppAdapter.MyViewHolder> { 24 private Context context; 25 private List<DataItem> list; 26 private RelativeLayout.LayoutParams params; 27 28 public interface OnItemClickListener { 29 void onItemClick(View view, int position); 30 } 31 32 private OnItemClickListener onItemClickListener; 33 34 public void setOnItemClickListener(OnItemClickListener listener) { 35 onItemClickListener = listener; 36 } 37 38 public AppAdapter(Context context, List<DataItem> list) { 39 this.context = context; 40 this.list = list; 41 } 42 43 @Override 44 public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 45 MyViewHolder holder = new MyViewHolder(LayoutInflater.from(context).inflate( 46 R.layout.fragment_app_item, null)); 47 return holder; 48 } 49 50 @Override 51 public void onBindViewHolder(final MyViewHolder holder, 52 final int position) { 53 DataItem info = list.get(position); 54 String tag = (String) holder.imageView.getTag(); 55 56 if (!info.getName().equals(tag)) { 57 holder.imageView.setImageBitmap(((BitmapDrawable) list.get(position) 58 .getImage()).getBitmap()); 59 holder.imageView.setTag(info.getName()); 60 } 61 62 if (info.isSelect()) { 63 holder.imageView.setAlpha(0.3f); 64 holder.appName.setAlpha(0.3f); 65 holder.appSize.setAlpha(0.3f); 66 holder.app_choice.setVisibility(View.VISIBLE); 67 } else { 68 holder.imageView.setAlpha(1.0f); 69 holder.appName.setAlpha(1.0f); 70 holder.appSize.setAlpha(1.0f); 71 holder.app_choice.setVisibility(View.GONE); 72 } 73 74 holder.appName.setText(info.getDisplayName()); 75 holder.appSize.setText("" + DeviceUtils.convertByte(info.getSize())); 76 77 holder.itemView.setOnClickListener(new View.OnClickListener() { 78 @Override 79 public void onClick(View v) { 80 if (onItemClickListener != null) { 81 int pos = holder.getLayoutPosition(); 82 onItemClickListener.onItemClick(holder.itemView, pos); 83 } 84 } 85 }); 86 } 87 88 @Override 89 public int getItemCount() { 90 if (list != null) { 91 return list.size(); 92 } else { 93 return 0; 94 } 95 } 96 97 public DataItem getItem(int position) { 98 return list.get(position); 99 } 100 101 class MyViewHolder extends RecyclerView.ViewHolder { 102 ImageView imageView; 103 ImageView app_choice; 104 TextView appName; 105 TextView appSize; 106 107 public MyViewHolder(View view) { 108 super(view); 109 imageView = (ImageView) view.findViewById(R.id.appImage); 110 111 params = (RelativeLayout.LayoutParams) imageView.getLayoutParams(); 112 params.width = DensityUtils.getScreenWidth(context) / 6; 113 params.height = params.width; 114 imageView.setLayoutParams(params); 115 116 appName = (TextView) view.findViewById(R.id.appName); 117 appSize = (TextView) view.findViewById(R.id.appSize); 118 app_choice = (ImageView) view.findViewById(R.id.appSelect_image); 119 } 120 } 121 }
更新数据
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2004.html

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android studio 如何查看模拟器里面的文件
1、查看SD卡里面的内容 2、看数据库
- 下一篇
Android线程优先级设置方法技巧
对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要。 Android在线程方面主要使用的是Java本身的Thread类,我们可以在Thread或Runnable接口中的run方法首句加入:Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);//设置线程优先级为后台 这样当多个线程并发后很多无关紧要的线程分配的CPU时间将会减少,有利于主线程的处理。 相关的Thread优先级Android123就Android平台专有的定义罗列有以下几种: int THREAD_PRIORITY_AUDIO //标准音乐播放使用的线程优先级 int THREAD_PRIORITY_BACKGROUND //标准后台程序 int THREAD_PRIORITY_DEFAULT // 默认应用的优先级 int THREAD_PRIORITY_DISPLAY //标准显...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范