需求:recyclerview显示的时候,手指按下,item的背景发生变化

    步骤1、设置item的布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="match_parent"    android:layout_height="180dp"    android:gravity="center_vertical"    android:background="@drawable/bg_selector"    android:focusable="true"    >    <de.hdodenhof.circleimageview.CircleImageView/>    <LinearLayout />LinearLayout>

步骤2、background背景选择 

android:background="@drawable/bg_selector"

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_pressed="true" android:drawable="@drawable/pressed"/>    <item android:drawable="@drawable/normal"/>selector>


步骤3、item的“事件”处理       代码阅读 onBindViewHolder

public class MyRecycleViewAdapter extends RecyclerView.Adapter {    private ListmList;    private Context context;    public MyRecycleViewAdapter(List mList,Context context) {        this.mList = mList;        this.context = context;    }    public interface OnItemClickListener{        void onItemClick(View view,int postion);        void onItemLongClick(View view,int postion);    }    private OnItemClickListener mOnItemClickListener;    public void setmOnItemClickListener(OnItemClickListener mOnItemClickListener) {        this.mOnItemClickListener = mOnItemClickListener;    }    @Override    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.item_home, parent,false);        MyViewHolder holder = new MyViewHolder(view);        return holder;    }    @Override    public void onBindViewHolder(final MyViewHolder holder, int position) {        holder.title.setText(mList.get(position).getTitles());        int r = new Random().nextInt(100);        r = r % 31;        if(r == 0) r=1;        String uri = "http://***/resources/default_image_"+ r +".jpg";        Picasso.with(context).load(uri).resize(550, 550).centerInside().into(holder.imageView);        if(mOnItemClickListener!=null){            holder.itemView.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View view) {                    int pos = holder.getLayoutPosition();                    mOnItemClickListener.onItemClick(holder.itemView,pos);                }            });            holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {                @Override                public boolean onLongClick(View view) {                    int pos = holder.getLayoutPosition();                    mOnItemClickListener.onItemLongClick(holder.itemView,pos);                    return false;                }            });        }    }    @Override    public int getItemCount() {        return mList.size();    }    class MyViewHolder extends RecyclerView.ViewHolder{        CircleImageView imageView;        TextView title;        public MyViewHolder(View itemView) {            super(itemView);            imageView = (CircleImageView) itemView.findViewById(R.id.icon);            title = (TextView) itemView.findViewById(R.id.title);        }    }}

更多相关文章

  1. Android(安卓)setContentView() 详解
  2. android 设置EditText和TextView不可见
  3. Android(安卓)自定义手写签名并保存到sdcard中(可以保存背景图)
  4. android selector 无效的问题
  5. android带返回按钮的自定义标题栏
  6. android studio 导入 融云问题之一 兼容4.0一下版本
  7. Android(安卓)input处理机制(二)改键机制
  8. 12、从头学Android之布局之TableLayout表格布局
  9. android 默认的几层布局

随机推荐

  1. centos6下redis cluster集群部署过程
  2. 如何安装DBMS_NETWORK_ACL_ADMIN包?
  3. centos6下ActiveMQ+Zookeeper消息中间件
  4. shell脚本监控CPU脚本
  5. ipcs、ipcrm、sysresv、kernel.shmmax
  6. 数据文件、表空间offline用法及区别
  7. Elasticsearch简单介绍 和 集群环境部署
  8. php5.6安装Zend Opcache扩展
  9. 日志文件ERROR监控报警
  10. Centos6.9下RabbitMQ集群部署记录