效果是这个样子滴

导入方法

  1. 首先在Gradle中添加一下代码
dependencies {compile 'com.lorentzos.swipecards:library:X.X.X@aar'
}
  1. 在activity中添加一下代码
public class MyActivity_Simple extends Activity {private ArrayList<String> al;private ArrayAdapter<String> arrayAdapter;private int i;@InjectView(R.id.frame) SwipeFlingAdapterView flingContainer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_my);ButterKnife.inject(this);al = new ArrayList<>();al.add("java");al.add("html");al.add("css");al.add("javascript");arrayAdapter = new ArrayAdapter<>(this, R.layout.item, R.id.helloText, al );flingContainer.setAdapter(arrayAdapter);flingContainer.setFlingListener(new SwipeFlingAdapterView.onFlingListener() {@Overridepublic void removeFirstObjectInAdapter() {// this is the simplest way to delete an object from the Adapter (/AdapterView)al.remove(0);arrayAdapter.notifyDataSetChanged();}@Overridepublic void onLeftCardExit(Object dataObject) {//Do something on the left!//You also have access to the original object.//If you want to use it just cast it (String) dataObject}@Overridepublic void onRightCardExit(Object dataObject) {}@Overridepublic void onAdapterAboutToEmpty(int itemsInAdapter) {}@Overridepublic void onScroll(float scrollProgressPercent) {}});}xml
}
  1. 在activity的XML文件中添加一下代码
<merge
    xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools" ><com.lorentzos.flingswipe.SwipeFlingAdapterView
        android:id="@+id/frame"android:background="#ffeee9e2"android:layout_width="match_parent"android:layout_height="match_parent"app:rotation_degrees="15.5"tools:context=".MyActivity" />
</merge>
  1. 添加一个名为item.xml的文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_gravity="center"android:layout_width="250dp"android:layout_height="170dp"><TextView
        android:id="@+id/helloText"android:textSize="40sp"android:textColor="@android:color/white"android:background="#E339"android:gravity="center"android:layout_width="match_parent"android:layout_height="match_parent" /><View
        android:id="@+id/item_swipe_left_indicator"android:alpha="0"android:layout_width="20dp"android:layout_height="20dp"android:layout_margin="10dp"android:background="#A5F" /><View
        android:id="@+id/item_swipe_right_indicator"android:alpha="0"android:layout_width="20dp"android:layout_height="20dp"android:layout_margin="10dp"android:layout_gravity="right"android:background="#5AF" />
</FrameLayout>

实现方法的介绍

1. 卡片的层叠效果:使用frameLayout

- 所有添加到这个布局中的视图都是以层叠的方式显示。
- 第一个添加到布局中视图显示在最底层,最后一个被放在最顶层。
- 上一层的视图会覆盖下一层的视图,因此该布局类似于堆栈布局。
- 默认对其方式是左上角对齐
- 若要设置子视图的位置,
- 要设置layout_gravity属性值。

2. 图片移动的动画,使用OnTouchListener,MotionEvent

一个简单的移动图片的例子

public class MainActivity extends AppCompatActivity implements View.OnTouchListener {private int _xDelta;private int _yDelta;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ImageView j = (ImageView) findViewById(R.id.imageView);j.setOnTouchListener(this);}public boolean onTouch(View view, MotionEvent event) {final int X = (int) event.getRawX();final int Y = (int) event.getRawY();ImageView j = (ImageView) findViewById(R.id.imageView);switch (event.getAction() & MotionEvent.ACTION_MASK) {case MotionEvent.ACTION_DOWN:RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();_xDelta = (int) (X - j.getTranslationX());_yDelta = (int) (Y - j.getTranslationY());break;case MotionEvent.ACTION_UP:break;case MotionEvent.ACTION_POINTER_DOWN:break;case MotionEvent.ACTION_POINTER_UP:break;case MotionEvent.ACTION_MOVE:RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();j.setTranslationX(X - _xDelta);j.setTranslationY(Y - _yDelta);break;}return true;}
}

3. 使用线性回归来预测用户是否要去掉图片(Linear Regression)

如果不用线性回归的话,用户需要将图片移动到指定地点才行

使用com.lorentzos.swipecards创建Tantan探探,tinder般的翻卡片效果相关推荐

  1. 模仿探探的左右滑动切换卡片功能

    偶然之间发现探探的左右滑动的图片挺好玩,试着去做了下,再到后来,看到许多大神也推出了同样仿探探效果的博客,从头到尾阅读下来,写得通俗易懂,基本上没什么问题.于是,实现仿探探效果的想法再次出现在脑海中. ...

  2. IOS精品源码,仿探探UIButton封装iOS提示弹框迅速引导页自定义导航栏

    1.仿 探探UI Swift ,重用机制 2.超强UIButton封装 3.一行代码集成UIPickerView,界面完全自定义 4.iOS提示弹框 5.swift UITableView / UIC ...

  3. Android中实现类似探探中图片左右滑动切换效果

    偶然之间发现探探的左右滑动的图片挺好玩,试着去做了下,再到后来,看到许多大神也推出了同样仿探探效果的博客,从头到尾阅读下来,写得通俗易懂,基本上没什么问题.于是,实现仿探探效果的想法再次出现在脑海中. ...

  4. 探探提醒对方账号异常_我告诉你探探中对方账号异常怎么回事

    探探对方账号异常有多种原因,可能是账号被封禁,可能是注销了账号.探探被封有多种原因,比如发布广告信息.发布色情暴力内容.恶意骚扰其他用户,探探注销账号也很简单,在探探3.7.5版本中,打开软件,点击页 ...

  5. Android横向滚动卡片,Android仿探探卡片式滑动效果实现

    前言 第一次进入探探软件界面,就被这种通过卡片式滑动来选择"喜欢/不喜欢"的设计所吸引了.当时就非常想通过自己来实现这种仿探探式的效果,然而却没什么思路.不过毋庸置疑的是,这种效果 ...

  6. 【10】AccessibilityService实现探探app的自动化喜欢和不喜欢+ [as 3.0如何打开层级调用uiautomatorviewer]

    目前版本3.1.8  仅供学习使用!!!!!切勿用作非法用途,否则后果自负! 直接写这个东西 可能是有些唐突 因为你们可能不知道这是一个什么玩意 如果你想看过于这个Accessibility服务的一些 ...

  7. 仿探探左右滑动的简单实现

    一.导入依赖 compile 'me.yuqirong:cardswipelayout:1.0.0' // recylerview依赖: compile 'com.android.support:re ...

  8. Tinder翻牌子项目总结(类似探探、Tinder、Nice的翻牌子)

    9月14日接到需求,需要修改翻牌子的,由之前的badoo 风格修改为tinder风格.而此功能目前探探.nice 等都有在使用. (一)需求分析: 1.需求:实现对用户的浏览. 2.功能: 模块介绍: ...

  9. Android实战第二篇——模仿社交软件探探(一)

    这是我的第二篇实战,相比于第一篇的看视频模仿着实战,这一篇完全是自己的实战,不借助任何视频教程,看视频的实战是在抄代码,而这一篇是完全自己构思,自己去解决问题的,这次的实战是仿照一个社交软件探探,该篇 ...

最新文章

  1. python web项目案例教程_Python Web开发案例教程(慕课版)——使用Flask、Tornado、Django...
  2. 电脑不能上网学习总结
  3. 2022年跨境卖家如何布局海外市场?东南亚“钱”景可观
  4. //todo 的用处
  5. 怎么在java中创建一个自定义的collector
  6. python 金融可视化_用 Python 进行金融数据可视化
  7. 报错:MetaException(message:Version information not found in metastore. )
  8. LeetCode 343. Integer Break
  9. 在linux上禁用ip,防止frps转发的端口被爆破,并屏蔽境外ip
  10. 11.11 Ext JS Tooltip 出错 Uncaught TypeError: Cannot read property ‘contains‘ of null
  11. 转:.NET使用一般处理程序生成验证码!
  12. 使用mpx开发外卖小程序
  13. 流程控制之if...else
  14. 大学生DW网页设计基础知识
  15. Peephole LSTM、GRU 实战
  16. 【网络工程师必备】怎么使用route命令实现内外网切换
  17. Doris export任务概率性cancelled
  18. 如何在html编辑文字信息,怎样简单修改网页中的内容,例如图片文字等?
  19. app毕业设计开题报告基于Uniapp实现的美食餐厅订单点餐APP
  20. 关于length specifier

热门文章

  1. Esper学习 -- 第一章 Esper初体验
  2. [附源码]计算机毕业设计Node.js贝儿婴儿用品网站(程序+LW)
  3. [反汇编练习] 160个CrackMe之033
  4. 如何在linux里面查看防火墙,linux查看防火墙(linux?如何查看防火墙是否开启)
  5. PostgreSQL 9.1 飞升之路 (上篇)
  6. 解决 ios 微信小程序分享到朋友圈 禁用问题
  7. linux根据内容搜索指定文件
  8. 初次使用IDEA启动web项目出现如下错误
  9. python pyc文件是啥_Python语言的.pyc文件是什么
  10. CGB2103-day06