RecyclerView第三方开源

public class MainActivity extends AppCompatActivity {
    private PullLoadMoreRecyclerView recyclerView;
    private List<Pic.美女Bean> list = new ArrayList<>();
    private MyAdapter adapter;
    private String path = "http://c.3g.163.com/recommend/getChanListNews?channel=T1456112189138&size=20&passport=&devId=1uuFYbybIU2oqSRGyFrjCw%3D%3D&lat=%2F%2FOm%2B%2F8ScD%2B9fX1D8bxYWg%3D%3D&lon=LY2l8sFCNzaGzqWEPPgmUw%3D%3D&version=9.0&net=wifi&ts=1464769308&sign=bOVsnQQ6gJamli6%2BfINh6fC%2Fi9ydsM5XXPKOGRto5G948ErR02zJ6%2FKXOnxX046I&encryption=1&canal=meizu_store2014_news&mac=sSduRYcChdp%2BBL1a9Xa%2F9TC0ruPUyXM4Jwce4E9oM30%3D";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        startTask();
        recyclerView.setOnPullLoadMoreListener(new PullLoadMoreRecyclerView.PullLoadMoreListener() {
            @Override
            public void onRefresh() {
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        startTask();
                        recyclerView.setPullLoadMoreCompleted();
                    }
                }, 1500);

            }

            @Override
            public void onLoadMore() {
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        startTask();
                        adapter.notifyItemInserted(list.size() - 1);
                        adapter.notifyDataSetChanged();
                        recyclerView.setIsLoadMore(false);
                        recyclerView.setPullLoadMoreCompleted();

                    }
                }, 1000);
            }
        });
    }

    private void initView() {
        recyclerView = (PullLoadMoreRecyclerView) findViewById(R.id.Rec);
        recyclerView.setGridLayout(3);
        adapter = new MyAdapter(list, MainActivity.this);
        recyclerView.setAdapter(adapter);

    }

    private void startTask() {
        OkhttpUtils.getInstance().getBeanOfOk(this, path, Pic.class, new OkhttpUtils.CallBack<Pic>() {
            @Override
            public void getData(Pic pic) {
                if (pic != null) {
                    list.addAll(0, pic.get美女());
                    initView();
                }
            }
        });
    }
}


public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<Pic.美女Bean> list;
    private Context mcontext;
    private MyOnItemClickListener itemClickListener;
    private MyOnItemLongClickListener itemLongClickListener;

    public interface MyOnItemClickListener {
        void OnItemClickListener(View view, int position);
    }

    public interface MyOnItemLongClickListener {
        void OnItemLongClickListener(View view, int position);
    }

    public MyAdapter(MainActivity mcontext, List<Pic.美女Bean> list) {
        this.list = list;
        this.mcontext = mcontext;

    }

    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(mcontext).inflate(R.layout.item, null);
        ViewHolder holder = new ViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(final MyAdapter.ViewHolder holder, int position) {
        final Pic.美女Bean bean = list.get(position);
        /// Glide.with(mcontext).load(bean.getImgsrc()).into(holder.picImage);
        Picasso.with(mcontext).load(bean.getImgsrc()).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).into(holder.picImage);
        if (itemClickListener != null) {
            holder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    itemClickListener.OnItemClickListener(holder.itemView, holder.getLayoutPosition());
                }
            });
            if (itemLongClickListener != null) {
                holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                    @Override
                    public boolean onLongClick(View v) {
                        itemLongClickListener.OnItemLongClickListener(holder.itemView, holder.getLayoutPosition());
                        return true;
                    }
                });
            }
        }
        holder.picImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(mcontext, bean.getTitle(), Toast.LENGTH_SHORT).show();

                PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("alpha", 1f,
                        0f, 1f);
                PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("scaleX", 1f,
                        0, 1f);
                PropertyValuesHolder pvhZ = PropertyValuesHolder.ofFloat("scaleY", 1f,
                        0, 1f);
                ObjectAnimator.ofPropertyValuesHolder(v, pvhX, pvhY, pvhZ).setDuration(2000).start();
            }
        });
    }

    public void setOnItemClickListener(MyOnItemClickListener itemClickListener) {
        this.itemClickListener = itemClickListener;
    }

    public void setOnItemLongClickListener(MyOnItemLongClickListener itemLongClickListener) {
        this.itemLongClickListener = itemLongClickListener;
    }


    @Override
    public int getItemCount() {
        return list == null ? 0 : list.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        private ImageView picImage;

        public ViewHolder(View itemView) {
            super(itemView);
            picImage = (ImageView) itemView.findViewById(R.id.pic_image);

        }
    }
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值