原帖地址:http://www.eoeandroid.com/thread-540337-1-1.html

Android微信5.0以前某个版本(具体哪个忘记了)实现了和IOS上面一样的效果——侧滑删除。这个特效在github上是一个比较火的开源项目,最近楼主也对一些UI特效比较感兴趣,在收集这些炫酷又实用的实例,如果楼下那位朋友有其他比较好的实例,还请不吝赐教。

下面是楼主仿微信侧滑删除做的实例部署后的截图:
           
        点击删除之后可以删除该行。
           
        下面是SwipeListView属性的一些讲解:

  1. <com.fortysevendeg.swipelistview.SwipeListView
  2. xmlns:swipe="http://schemas.android.com/apk/res-auto"//命名空间
  3. android:id="@+id/example_lv_list
  4. android:listSelector="#00000000"
  5. android:layout_width="fill_parent"
  6. android:layout_height="wrap_content"
  7. swipe:swipeFrontView="@+id/front"//swipelistview顶部viewgroup(实例截图中包含人物、头像、时间的layout)                          swipe:swipeBackView="@+id/back"//swipelistview背后的viewgroup(实例截图中包删除按钮的layout)
  8. swipe:swipeActionLeft="[reveal | dismiss]"//设置向左滑动是当前别滑动item的显示效果(reveal显示背后的viewgroup,dismiss该item消失)    swipe:swipeActionRight="[reveal | dismiss]"//同向左滑动
  9. swipe:swipeMode="[none | both | right | left]"//设置swipelistview无滑动效果,两侧均可滑动,向右滑动,向左滑动                         swipe:swipeCloseAllItemsWhenMoveList="[true | false]"//swipelistview滚动时关闭所有已打开的item            swipe:swipeOpenOnLongPress="[true | false]"//长按某个item是否打开            swipe:swipeAnimationTime="[miliseconds]"//动画持续时间            swipe:swipeOffsetLeft="[dimension]"//滑动后顶部viewgroup距离左边界距离            swipe:swipeOffsetRight="[dimension]"            />

复制代码

在上源码之前,必须要向各位说明的是,使用第三方开源项目必需要引入相应的jar包或者项目,SwipeListView必须依赖开源swipelistview项目以及nineoldandroids-2.4.0.jar,我在后面的附件会提供这些第三方工具。当你在开发自己的swipelistview实例之前,需要把开源项目swipelistview先导入你的工程目录,然后勾选iIs Library,之后新建你自己的项目,在项目中引入这个开源项目OK了。具体的如何引入这里不做赘述,相信接触过开发的基本都懂。 下面是MainActivity.java

  1. package com.swipe.activity;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.widget.Toast;
  7. import com.fortysevendeg.swipelistview.BaseSwipeListViewListener;
  8. import com.fortysevendeg.swipelistview.SwipeListView;
  9. public class MainActivity extends Activity {
  10. private SwipeListView mSwipeListView;
  11. private SwipeListViewAdapter adapter;
  12. private List<TestData> datas;
  13. @Override
  14. protected void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main_layout);
  17. mSwipeListView=(SwipeListView) findViewById(R.id.example_lv_list);
  18. mSwipeListView.setOffsetLeft(this.getResources().getDisplayMetrics().widthPixels*2/3);
  19. //                mSwipeListView.setSwipeMode(SwipeListView.SWIPE_MODE_LEFT);
  20. //                mSwipeListView.setSwipeActionLeft(SwipeListView.SWIPE_ACTION_REVEAL);
  21. //                mSwipeListView.setAnimationTime(0);
  22. //                mSwipeListView.setSwipeOpenOnLongPress(false);
  23. initDatas();
  24. adapter=new SwipeListViewAdapter(this, mSwipeListView, datas);
  25. mSwipeListView.setAdapter(adapter);
  26. mSwipeListView.setSwipeListViewListener(new BaseSwipeListViewListener(){
  27. @Override
  28. public void onClickFrontView(int position) {
  29. super.onClickFrontView(position);
  30. mSwipeListView.closeOpenedItems();
  31. Toast.makeText(MainActivity.this, adapter.getItem(position).getTime()+getTitle()+"和你对话", 2400).show();
  32. }
  33. @Override
  34. public void onDismiss(int[] reverseSortedPositions) {
  35. super.onDismiss(reverseSortedPositions);
  36. for (int i : reverseSortedPositions) {
  37. datas.remove(i);
  38. }
  39. adapter.notifyDataSetChanged();
  40. }
  41. });
  42. }
  43. private void initDatas(){
  44. datas=new ArrayList<TestData>();
  45. TestData td1=new TestData("张三", "2014-7-11");
  46. datas.add(td1);
  47. TestData td2=new TestData("李四", "2014-3-18");
  48. datas.add(td2);
  49. TestData td3=new TestData("王五", "2013-11-11");
  50. TestData td4=new TestData("白素", "2013-7-11");
  51. TestData td5=new TestData("卫斯理", "2013-5-20");
  52. TestData td6=new TestData("曹操", "2013-2-14");
  53. TestData td7=new TestData("刘备", "2012-8-15");
  54. TestData td8=new TestData("孙权", "2012-7-7");
  55. TestData td9=new TestData("董卓", "2012-2-14");
  56. TestData td10=new TestData("王允", "2011-10-1");
  57. TestData td11=new TestData("貂蝉", "2011-7-7");
  58. datas.add(td3);
  59. datas.add(td4);
  60. datas.add(td5);
  61. datas.add(td6);
  62. datas.add(td7);
  63. datas.add(td8);
  64. datas.add(td9);
  65. datas.add(td10);
  66. datas.add(td11);
  67. }
  68. }

复制代码

下面是MainActiivty.java的布局文件main_layout.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <com.fortysevendeg.swipelistview.SwipeListView
  7. xmlns:swipe="http://schemas.android.com/apk/res-auto"
  8. android:id="@+id/example_lv_list"
  9. android:listSelector="#00000000"
  10. android:layout_width="fill_parent"
  11. android:layout_height="fill_parent"
  12. swipe:swipeFrontView="@+id/front"
  13. swipe:swipeBackView="@+id/back"
  14. swipe:swipeActionLeft="reveal"
  15. swipe:swipeActionRight="reveal"
  16. swipe:swipeMode="left"
  17. swipe:swipeCloseAllItemsWhenMoveList="true"
  18. swipe:swipeOpenOnLongPress="false"
  19. swipe:swipeAnimationTime="1"
  20. swipe:swipeOffsetLeft="0dip"
  21. swipe:swipeOffsetRight="0dp"
  22. />
  23. </LinearLayout>

复制代码

下面是swipelistview自定义item package_row.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <RelativeLayout
  7. android:id="@+id/back"
  8. android:tag="back"
  9. android:layout_width="match_parent"
  10. android:layout_height="50dp"
  11. android:background="#eee"
  12. android:gravity="right">
  13. <Button
  14. android:id="@+id/delete"
  15. android:layout_width="wrap_content"
  16. android:layout_height="50dp"
  17. android:background="#FF0000"
  18. android:layout_alignParentRight="true"
  19. android:text="刪除"/>
  20. </RelativeLayout>
  21. <RelativeLayout
  22. android:id="@+id/front"
  23. android:layout_width="match_parent"
  24. android:layout_height="50dp"
  25. android:gravity="center_vertical"
  26. android:background="#ffffff"
  27. android:tag="front" >
  28. <ImageView
  29. android:id="@+id/head_icon"
  30. android:layout_width="45dp"
  31. android:layout_height="45dp"
  32. android:layout_marginLeft="20dp"
  33. android:background="@drawable/ic_launcher"
  34. android:scaleType="fitXY" />
  35. <TextView
  36. android:id="@+id/nickname"
  37. android:layout_width="wrap_content"
  38. android:layout_height="wrap_content"
  39. android:textStyle="bold"
  40. android:textColor="@android:color/black"
  41. android:layout_toRightOf="@id/head_icon"
  42. android:layout_alignTop="@id/head_icon"
  43. android:textSize="18sp"/>
  44. <TextView android:id="@+id/time"
  45. android:layout_width="wrap_content"
  46. android:layout_height="wrap_content"
  47. android:layout_alignParentRight="true"
  48. android:layout_alignParentBottom="true"
  49. android:layout_marginRight="20dp"
  50. android:layout_marginBottom="5dp"
  51. />
  52. </RelativeLayout>
  53. </FrameLayout>

复制代码

最后给出github中SwipeListView的连接 SwpieListView GitHub地址

项目源码,我给出的源码已经包含第三方开源组件,希望自己写出测试实例的可以直接使用

PS:源码请到原帖http://www.eoeandroid.com/thread-540337-1-1.html下载

android 仿微信侧滑删除SwipeListView实例相关推荐

  1. android微信右滑删除,Android实现微信侧滑删除当前页面

    本文实例为大家分享了微信侧滑删除当前页面的具体代码,供大家参考,具体内容如下 效果图不是太明显 实际上有finish动画 代码 package com.finddreams.slidingback.u ...

  2. Android自定义ListView实现仿微信侧滑删除

    经常在遇到问题第一时间都会在网上搜索解决的方法,因此看到很多前辈们的比较精辟的技术文章,学习了很多东西,现在将自己平时工作中开发的一些小功能坐下总结,也写出来,既方便自己理清思路记忆功能块实现思路,又 ...

  3. android高仿微信下拉有页面,Android——(仿微信聊天界面布局实例)

    今天看郭霖<第一行代码>书上写了一个聊天窗体的小例子,自己就练习学了一下.加上一些自己的理解整理了一下. 1.第一步首先是制作9.patch图片,这个在android  sdk 目录下to ...

  4. android右滑返回动画,Android仿微信右滑返回功能的实例代码

    先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现. ...

  5. android 清理缓存动画,Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解...

    最近接了一个项目其中有功能要实现一个清理内存,要求和微信的效果一样.于是想到用surfaceView而不是继承view.下面小编给大家解析下实现思路. surfaceView是为了解决频繁绘制动画产生 ...

  6. android 仿微信demo————注册功能完善添加头像功能(移动端)

    android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...

  7. android高仿微信小视频,Android仿微信录制小视频

    本文实例为大家分享了Android仿微信录制小视频的具体代码,供大家参考,具体内容如下 先上张图片看看效果 简单叙述下 首先通过Camera类调用系统相机 通过surfaceview绘制出来 通过Me ...

  8. php仿微信底部菜单,Android实现简单底部导航栏 Android仿微信滑动切换效果

    Android仿微信滑动切换最终实现效果: 大体思路: 1. 主要使用两个自定义View配合实现; 底部图标加文字为一个自定义view,底部导航栏为一个载体,根据需要来添加底部图标; 2. 底部导航栏 ...

  9. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

最新文章

  1. java gc的工作原理、如何优化GC的性能、如何和GC进行有效的交互
  2. nodejs中的异步流程序控制nsync
  3. gnome3增加自定义程序快捷方式
  4. SD功能增强业务说明书
  5. 4、Angular JS 学习笔记 – 创建自定义指令 [翻译中]
  6. jdk 细粒度锁_使用JDK 8轻松进行细粒度排序
  7. 工作总结16:多看官网
  8. XidianOJ 1123 K=1 Problem of Orz Pandas
  9. TensorFlow HOWTO 1.1 线性回归
  10. mysql自定义函数to_date_mysql 之 str_to_date ()函数 和date_format()函数
  11. 操作系统—基本知识(细致版)
  12. IOS:UI设计之UISegmentedControl相关基础
  13. 微信小程序模板消息(带流程图)
  14. 生成对抗网络及其应用
  15. 实验六 有源滤波器
  16. 【2019年04月23日】股市指数估值排名
  17. 《强化学习周刊》第65期:Neurips2022强化学习论文推荐(5)、MIT:机器狗当守门员、具身智能与机器人研讨会...
  18. Java日志系列——概述,JUL
  19. 数据结构(1)—— 数据结构的三大结构
  20. Java中的IO技术使用总结

热门文章

  1. linux task进程跟踪,如何对Hadoop作业的某个task进行debug单步跟踪
  2. 每天一道LeetCode-----链表排序,要求复杂度在O(nlogn)
  3. mac m1下编译spring框架
  4. java里的主线程和子线程以及finally不会执行的特殊情况
  5. Xcode 真机调试 iOS 应用的各种问题和解决方法
  6. the vmware authorization service is not running
  7. px4官网调参指南 多旋翼无人机PID调参指南
  8. git提交项目到已存在的远程分支
  9. 2019牛客暑期多校训练营(第四场)I - String (后缀自动机+回文树)
  10. cuda,nvidia-driver ,cudnn下载地址及版本对应