仿探探图片卡左右滑动效果
效果图:
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:
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@Overridepublic 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;}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);number = getRandomNumber(1, 108);getNet(number);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic 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() {@Overridepublic 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);}}@Overridepublic void onFailed(Exception e) {}});}public int getRandomNumber(int min, int max) {return new Random().nextInt(max) % (max - min + 1)+min;}@Overridepublic 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;}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = View.inflate(context, R.layout.item, null);ViewHolder holder = new ViewHolder(view);return holder;}@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {Glide.with(context).load(list.get(position).getPic()).into(holder.img);holder.title.setText(list.get(position).getDescription());}@Overridepublic 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"><Buttonandroid: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.RecyclerViewandroid: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"><gradientandroid: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"/><cornersandroid:bottomLeftRadius="20dp"android:bottomRightRadius="20dp"android:topRightRadius="20dp"android:topLeftRadius="20dp"/><gradientandroid:angle="270"android:centerColor="#026693"android:endColor="#023d5d"android:startColor="#1989a1" />
</shape>
仿探探图片卡左右滑动效果相关推荐
- 图片文字介绍滑动效果代码介绍
代码 链接 结果展示 代码 <!DOCTYPE html> <html lang="en"><head><meta charset=&qu ...
- Android横向滚动卡片,RecyclerView+CardView实现横向卡片式滑动效果
现在来介绍两种控件recyclerview和cardview,并通过实例将它们结合在一起实现一种横向卡片式滑动效果. 1.recyclerview recyvlerview是android sdk 新 ...
- Android横向滚动卡片,Android仿探探卡片式滑动效果实现
前言 第一次进入探探软件界面,就被这种通过卡片式滑动来选择"喜欢/不喜欢"的设计所吸引了.当时就非常想通过自己来实现这种仿探探式的效果,然而却没什么思路.不过毋庸置疑的是,这种效果 ...
- Android仿探探卡片式滑动效果实现
第一次进入探探软件界面,就被这种通过卡片式滑动来选择"喜欢/不喜欢"的设计所吸引了.当时就非常想通过自己来实现这种仿探探式的效果,然而却没什么思路.不过毋庸置疑的是,这种效果的原理 ...
- android 探探卡片,仿探探首页卡片式滑动效果
Introduction CardSwipeLayout - Use RecyclerView to achieve card swipe layout , like Tantan . Screens ...
- 仿蜻蜓FM详情页嵌套滑动效果(IOS版本效果)
闲来无事,看到蜻蜓FM的详情页面效果挺好玩的,于是乎仿一下,因为IOS版本和Android版本的效果不一致,看了下Android实现上更加复杂一点,所以先实现了IOS的方式,效果上大致的功能效果都有了 ...
- dw的php选择滑动图片效果,页面图片浮动左右滑动效果的简单实现案例
核心代码: 1.css:16sucai.css html,body { height: 100%; margin: 0px; padding: 0px; } a {outline: none;} im ...
- php图片滑动的属性,使用css怎么实现图片的滑动效果?(示例)
本篇文章主要给大家介绍关于css实现图片的滑动效果示例,希望大家阅读完本篇后对css滑动效果的相关知识有所了解. 下面给大家举一个简单的css图片滑动效果示例(自下而上滑动): css怎么实现图片滑动 ...
- 手机京东菜单html,jQuery仿京东商城手机端商品分类滑动切换特效
jQuery仿京东商城手机端商品分类滑动切换特效 一款仿京商城东手机移动端商品图片分类导航滑动效果,jQuery商品二级分类菜单切换特效. js代码 //设置cookie function setCo ...
最新文章
- “耐撕”团队2016.04.12站立会议
- HTML form 标签的 action 属性
- 6月17 表单验证
- Cause: org.postgresql.util.PSQLException: ERROR: column province_id does not exist
- QDoc包括外部代码includingexternalcode
- Mongodb固定集合
- react 使用 mobx_如何使用React和MobX状态树构建基于状态的路由器
- 关于c/c++语言中*和*使用的详细分析
- 阿里云提示微擎被挂图片木马详解
- Hadoop 回收站
- 扩展频谱--直接序列扩频
- 太极熊猫服务器怎么都在维护,《太极熊猫》“新年贺岁版”更新维护公告
- 山体滑坡动画用什么软件制作_做施工动画是用什么软件来做
- 比特率与波特率的定义及区别
- 怎么复制黑苹果config配置_Catia中端电脑配置推荐(黑苹果)
- Laravel文档 翻译合集
- java 字符串排列组合_字符串排列组合问题
- 计算机盖,盖珂珂_北京理工大学计算机学院
- 华为 A800-9000 服务器 离线安装MindX DL
- 智慧城市建设 这五个方面不可不考虑
热门文章
- 理论篇一: 如何设计游戏棋牌平台 - 服务端 - 简介
- linux shell脚本攻略 第二章 命令之乐 cat,find,tr,sort,uniq,split等
- 企业级服务器硬盘iops,几种磁盘iops对比
- 服务器云化,以一当十 华为服务器顺应云化和融合趋势
- 2020 IDEA常用快捷键集合
- VSCode程序猿彩虹屁插件rainbow fart体验:哇哦我听到有萌妹子夸我ฅ( ˃̶˙ω˙˂̶ ฅ
- 【解决方案】视频字幕生成+自动翻译字幕(中英,中法视频,双语字幕制作)
- 手机酒精测试仪软件有用么,“酒精测试仪”手机软件走俏 交警称不可信
- 【IPD】集成产品开发培训课程「3月4-5日」
- LED显示屏基础知识