仿探探图片卡左右滑动效果
来源:互联网 发布:mac 返回快捷键 编辑:程序博客网 时间:2024/06/06 05:38
效果图:
1、实现如图效果
2、根据接口请求数据并展示
3、实现如效果视频的切换效果
4、换一批 可以切换随机切换一批电影数据
添加依赖:
项目的build.gradle
allprojects { repositories { jcenter() maven { url 'https://jitpack.io' } }}
APP下build.gradle
compile 'com.github.mcxtzhang:ZLayoutManager:V1.1.0'
Activity:
package com.bwie.com.wangruixin20171209.fragment;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.helper.ItemTouchHelper;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import com.bwie.com.wangruixin20171209.R;import com.bwie.com.wangruixin20171209.adapter.MyAdapter;import com.bwie.com.wangruixin20171209.bean.VideoBean;import com.bwie.com.wangruixin20171209.presenter.VideoPresenter;import com.bwie.com.wangruixin20171209.view.IView;import com.mcxtzhang.layoutmanager.swipecard.CardConfig;import com.mcxtzhang.layoutmanager.swipecard.OverLayCardLayoutManager;import com.mcxtzhang.layoutmanager.swipecard.RenRenCallback;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Random;/** * Created by Wangrx on 2017/12/9. */public class ThreeFragment extends Fragment{ private int number; private VideoPresenter presenter; private List<VideoBean.RetBean.ListBean> list = new ArrayList<>(); private RecyclerView rcv; private Button btn; private MyAdapter myAdapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getContext(), R.layout.threefragment, null); rcv = view.findViewById(R.id.recyclerview); btn = view.findViewById(R.id.btn); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); number = getRandomNumber(1, 108); getNet(number); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { number = getRandomNumber(1, 108); getNet(number); myAdapter.notifyDataSetChanged(); } }); } public void getNet(int num){ Map<String, String> map = new HashMap<>(); map.put("catalogId","402834815584e463015584e539330016"); map.put("pnum",num+""); presenter = new VideoPresenter(); presenter.getData(map); presenter.attachView(new IView() { @Override public void onSuccess(Object o) { if (o instanceof List){ List<VideoBean.RetBean.ListBean> data = (List<VideoBean.RetBean.ListBean>) o; rcv.setLayoutManager(new OverLayCardLayoutManager()); myAdapter = new MyAdapter(getContext(),data); CardConfig.initConfig(getActivity()); //三个参数:rcv:自己的RecyclerView,myAdapter:适配器,list:将自己的集合数据传进去,进行得到size数量 ItemTouchHelper.Callback callback = new RenRenCallback(rcv, myAdapter, data); //v7的触摸事件判断类 ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback); itemTouchHelper.attachToRecyclerView(rcv); //设置适配器 rcv.setAdapter(myAdapter); } } @Override public void onFailed(Exception e) { } }); } public int getRandomNumber(int min, int max) { return new Random().nextInt(max) % (max - min + 1)+min; } @Override public void onDestroy() { super.onDestroy(); if (presenter!=null){ presenter.detatchView(); } }}
适配器:
package com.bwie.com.wangruixin20171209.adapter;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.bumptech.glide.Glide;import com.bwie.com.wangruixin20171209.R;import com.bwie.com.wangruixin20171209.bean.VideoBean;import java.util.List;/** * Created by Wangrx on 2017/12/9. */public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ private Context context; private List<VideoBean.RetBean.ListBean> list; public MyAdapter(Context context, List<VideoBean.RetBean.ListBean> list) { this.context = context; this.list = list; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.item, null); ViewHolder holder = new ViewHolder(view); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { Glide.with(context).load(list.get(position).getPic()).into(holder.img); holder.title.setText(list.get(position).getDescription()); } @Override public int getItemCount() { return list.size(); } public class ViewHolder extends RecyclerView.ViewHolder { ImageView img; TextView title; ViewHolder(View itemView) { super(itemView); img = itemView.findViewById(R.id.img); title = itemView.findViewById(R.id.title); } }}
布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/shape" > <Button android:id="@+id/btn" android:layout_width="100dp" android:layout_height="30dp" android:layout_centerHorizontal="true" android:layout_margin="30dp" android:background="#0c0" android:layout_alignParentBottom="true" android:text="换一批" android:textColor="#fff" /> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_above="@+id/btn" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v7.widget.RecyclerView></RelativeLayout>
设置背景颜色
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="270" android:centerColor="#3e9302" android:endColor="#5d4802" android:startColor="#025d54" /></shape>设置边框圆角背景颜色
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#fff" /> <stroke android:width="1dip" android:color="#ddd"/> <corners android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp" android:topRightRadius="20dp" android:topLeftRadius="20dp"/> <gradient android:angle="270" android:centerColor="#026693" android:endColor="#023d5d" android:startColor="#1989a1" /></shape>
阅读全文
0 0
- 仿探探图片卡左右滑动效果
- Android 图片左右滑动效果
- 使用ViewFlipper实现图片左右滑动效果
- Android实现图片左右滑动效果
- android 实现图片左右滑动效果
- 手机端图片左右滑动效果实现
- Slick 图片左右滑动幻灯片效果
- android实现图片左右滑动效果:viewpager
- 左右滑动图片,有轮播的效果
- 移动端图片左右滑动效果
- Android-手势-实现图片左右滑动效果
- iOS-动画效果(图片左右滑动 添加动画效果)
- ViewFlipper 左右滑动效果
- ViewFlipper 左右滑动效果
- ViewPager左右滑动效果
- 页面左右滑动效果
- 网页左右滑动效果
- 左右滑动指针效果
- 打印·剥洋葱
- ZOJ 3606 Modular Inverse【乘法逆元】
- android 6.0后usb otg设备不显示在文件管理器中
- VBA: 字典的介绍与实例
- codeforce 385 div1 a
- 仿探探图片卡左右滑动效果
- 回顾Spring框架 springboot火推01
- 微信房卡六人九人牛牛源码搭建教程
- Android中更改UI方法汇总
- ShaderWeaver卡片制作-第二节
- 刷新yarn集群的队列
- 双12根本不在话下,阿里首次揭秘扛过双11的千亿级特征分布式机器学习平台XPS
- selector
- 深度学习与神经网络入门必读1!