前言: 大家好,今天给大家介绍安卓一种特别实用有很酷炫的组件swipecard,当然这并不是安卓爸爸创造的,这是国内的一个我认为是大牛的一个人随便写着玩儿搞出来了,我看了他的代码介绍已经很清晰了,但是对于刚入门学安卓的同学们来说理解还是得需要一定的时间,于是在这里我就给大家把他的代码给精简一下步骤,希望能给大家一些帮助。
(图片无法上传所以导致图片不可见,大家可以点击我的有道链接查看 http://note.youdao.com/noteshare?id=ef7292c53d507cd0e1f3b15abb518e48)
 
1、导入:
 
第一步:首先大家需要去GitHub上去下载这个组件的压缩包然后解压,解压点开文件后应该是下图这种效果(图片不显示,就是一个文件夹):
 
第二步:导入Module,在file的目录下选择new选择import
 
    然后点击出现下图界面,在浏览你第一步下载的文件夹选择library然后点击完成
 
 

第三步:

添加依赖:在file文件目录下的project structure里选择你的APP,选择depedence目录
点击加号选择第二个Module depedence选择lib目录下点击选择添加依赖,点击完成
 
至此我们对于导入Module的工作已经完成了,下面就是实现组件的效果了:
2、使用:
 
第一步:首先我们要明白,这是一个组件,类似于ListView的一个组件,所以第一步就是在xml文件中生成它
第二步:因为与ListView相似,所以这个组件也需要适配器,下面我们就要自定义一个适配器,但是需要继承的不是BaseAdapter而是继承咱们导入的那个Module里的BaseCardAdapter,看下面代码:(每个方法都已经有了注释,大家应该都看的明白)
 package com.jereh.biyingapplication.adapter;

 import android.content.Context;
import android.view.View;
import android.widget.ImageView; import com.bumptech.glide.Glide;
import com.huxq17.swipecardsview.BaseCardAdapter;
import com.jereh.biyingapplication.entity.CardImg;
import com.jereh.biyingapplication.*;
import java.util.List; /**
* Created by zhangdi on 2016/8/31.
*/
public class MyAdapter extends BaseCardAdapter {
private List<CardImg> datas;
private Context context; public MyAdapter(List<CardImg> datas, Context context) {
this.datas = datas;
this.context = context;
}
/**
* 获取卡片的数量
*
* @return
*/
@Override
public int getCount() {
if (datas.size()<1){
return 0;
}else {
return datas.size();
} } /**
* 获取卡片view的layout id
*
* @return
*/
@Override
public int getCardLayoutId() {
return R.layout.card_item;
} /**
* 将卡片和数据绑定在一起
*
* @param position 数据在数据集中的位置
* @param cardview 要绑定数据的卡片
*/
@Override
public void onBindData(int position, View cardview) {
if (datas == null || datas.size() == 0) {
return;
}
ImageView imageView =
(ImageView) cardview.findViewById(R.id.lv_img);
CardImg img = datas.get(position);
Glide.with(context)
.load(img.getImg())
.crossFade()
.centerCrop()
.into(imageView);
} /**
* 获取可见的cardview的数目,默认是3
* @return
*/
@Override
public int getVisibleCardCount() {
return datas.size();
}
}

第三步:现在已经有了适配器,布局中也已经有了组件,剩下要做的就是在java代码中把他们关联起来并给添加数据以及对各种事件做监听了:

 swipeCardsView =
(SwipeCardsView)view.findViewById(R.id.swipCardsView);
//设置滑动监听
swipeCardsView
.setCardsSlideListener(new SwipeCardsView.CardsSlideListener() {
@Override
public void onShow(int index) {
Log.i("test showing index = ", "" + index);
} @Override
public void onCardVanish(int index, SwipeCardsView.SlideType type) {
String orientation = "";
switch (type) {
case LEFT:
orientation = "向左飞出";
break;
case RIGHT:
orientation = "向右飞出";
break;
}
} @Override
public void onItemClick(View cardImageView, int index) { }
});

下面就是定义各种事件的方法以及关联适配器展示界面的方法:(其中mList是数据)

 /**
* 卡片向左边飞出
*/
public void doLeftOut() {
swipeCardsView.slideCardOut(SwipeCardsView.SlideType.LEFT);
}
/**
* 卡片向右边飞出
*/
public void doRightOut() {
swipeCardsView.slideCardOut(SwipeCardsView.SlideType.RIGHT);
}
/**
* 显示cardsview
*/
private void show() {
if (adapter == null) {
adapter = new MyAdapter(mList, getActivity());
swipeCardsView.setAdapter(adapter);
} else {
swipeCardsView.notifyDatasetChanged(mList.indexOf(mList));
}
}

至此这个组件已经完全配置完成,简单吧,希望我的笔记能对大家有所帮助,更希望大家能在自己的APP中实现,谢谢

使用swipecard实现卡片视图左右滑动监听以及点击监听的更多相关文章

  1. UWP 卡片视图 Card View

    上一篇 提到了 UWP 轨道视图Orbit View,这次就说一下卡片视图,毕竟两个差不多. 卡片视图,效果如其名,卡片一样,左右滑动,当然能翻牌最好了. 嗯,我这个可以的额(⊙﹏⊙)... 看下效果 ...

  2. mui卡片视图的制作

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. mui 卡片视图 遮罩蒙版

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  4. 【Android】10.4 卡片视图

    分类:C#.Android.VS2015: 创建日期:2016-02-19 一.简介 Android 从5.0开始包含了一个全新的卡片视图小部件,这个新的小部件默认就像一张带有圆角和轻微阴影的白色卡片 ...

  5. ListView的HeaderView包含的GridView滑动隐藏后无法点击问题分析

    目录 1 现象 2 问题分析 2.1 滑动前 2.2 滑动后 2.3 mDataChanged赋值为true的位置 2.3 GridView直接作为ListView的HeaderView为什么可以滑动 ...

  6. Android 监听短信(同时监听广播和数据库)

    暗扣,强烈谴责这种侵害用户利益的行为... 下面给大家介绍Android暗扣原理.......  Android4.4以下的系统玩游戏就要小心了哈 暗扣方式之一:短信订购,即监听--------拦截- ...

  7. xcode UIButton创建、监听按钮点击、自定义按钮 、状态 、内边距

    代码创建 //创建UIButton UIButton * btnType=[[UIButton alloc]init]; //设置UIControlStateNormal状态下的文字颜色 [btnTy ...

  8. Oracle 数据库监听无法连接上、监听HANG住、监听无响应、TNS-12560

    环境: Windows server 2003 Oracle 11.2.0.1 问题: 一套老数据库在运行了很久后,突然就连接不上了,提示监听异常. 处理: 1.CMD命令行检查监听状态:无监听 2. ...

  9. 监听当点击微信等app的返回按钮或者浏览器的上一页或后退按钮的事件

    在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面或执行一些其它操作的 需求,那在代码中怎样监听当点击微信.支付宝.百度糯米.百度钱包 ...

随机推荐

  1. javasrcipt中的for in 循环

    function myFunction(){ var x;  //声明变量x: var txt="";  //声明变量txt并赋值为空: var person={fname:&qu ...

  2. Linux下I/O模型

    Unix下共有五种I/O模型 1. 阻塞式I/O 2. 非阻塞式I/O 3. I/O复用(select和poll) 4. 信号驱动式I/O(SIGIO) 5. 异步I/O(POSIX的aio_系列函数 ...

  3. 父类方法中的this

    一直在用一些东西,却总是感觉有一些疑惑,今天发现了自己一个及其致命的意识错误.关于父类中this关键字到底是谁的问题.请看代码 父类Parent public class Parent { publi ...

  4. 用JDBC访问MySQL

    /* 在数据库中创建一个Employee的类 create table Employee( id int primary key, name varchar(20), age int); */ imp ...

  5. 日期转换时Safari中返回Invalid Date

    问题: 进行日期转换时,Safari中会返回Invalid Date, 而IE 9, Firefox, Chrome and Opera显示正常,代码如下所示: var d = new Date(&q ...

  6. JAVA 十六进制与字符串的转换

    public static String toHexString(int i)以十六进制的无符号整数形式返回一个整数参数的字符串表示形式.如果参数为负,那么无符号整数值为参数加上 232:否则等于该参 ...

  7. Swift 01.String

    1.字符串拼接 var num1 = "hello,world" var name = "xiaoming" var age = let student = n ...

  8. [转]CSS,font-family,常用网页字体

    http://www.zreading.cn/ican/2014/10/css-font-family/ CSS,font-family,好看常用的中文字体 2014-10-14 例1(小米米官网): ...

  9. C#微信公众号接口开发实例-高级接口-申请带参数的二维码

    最近公司涉及到微信绑定用户,做了高级接口-申请带参数的二维码,总结了下微信开发接口.微信接口开发都是除了消息用的xml 回复基本上都是用json的形式传递信息(post/get),开发的方法基本都是一 ...

  10. IOS基础库

    iOS 开发者中心                                             https://developer.apple.com/devcenter/ios/inde ...