activity

Android侧滑返回的实现

不羁岁月 提交于 2019-12-02 12:42:02
IOS有侧滑回退的功能,可以侧滑回退到上一个Activity,并且在侧滑时,底层的actvity是透明显示的。下面代码将实现该功能。 主要实现思路是让Activity的整个容器滑动。 package com.tjpld.tonglingsafetyandroid.customview; import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration;

侧滑销毁activity

南笙酒味 提交于 2019-12-02 12:34:59
首先导入依赖库 compile 'com.jude:swipebackhelper:3.1.2' 然后写一个BaseActivity,哪个activity需要销毁就继承这个activity,下边上代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SwipeBackHelper.onCreate(this); SwipeBackHelper.getCurrentPage(this) .setSwipeBackEnable(true) .setSwipeSensitivity(0.5f) .setSwipeRelateEnable(true) .setSwipeRelateOffset(300); //ViewServer.get(this).addWindow(this); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); SwipeBackHelper.onPostCreate(this); } @Override protected void onDestroy(

最简单侧滑退出activity的实现

五迷三道 提交于 2019-12-02 12:34:46
侧滑退出activity的原理其实很简单: 1.设置activity为透明主题。 2.自定义viewgroup作为activity的根布局。 3.在自定义的viewgroup中onTounEvent中根据手指滑动使用scrollBy方法滑动viewgroup中的内容。 4.监听滑动完成关闭activity。 这里只提供下简单实现思路,里面当然有很多问题,特别滑动冲突需要处理。另外NestedScrollingParent和NestedScrollingChild处理滑动问题是非常好的。 public class SlideCloseLayout extends ViewGroup { private int screeWidth; private float startX; private int childCount; private Scroller mScroller;//处理平滑滑动 private Context mContext; private boolean isClose = false; public SlideCloseLayout(Context context) { super(context); init(context); } public SlideCloseLayout(Context context, AttributeSet attrs) {

滑动退出Activity的两种方法

我只是一个虾纸丫 提交于 2019-12-02 12:34:19
最近遇到需求,需要滑动退出Activity,参考了大虾们的方案后整理出了两种主流的方法: 使用OnTouchEvent,处理触摸事件实现滑动退出 使用ViewDragHelper拖动实现滑动退出 两种方法各有利弊,遇到界面上的滑动或滚动事件产生冲突的需要自己处理,下面就来详细的介绍两种实现方法。 0.前提 两种方法不管使用哪一种都需要设置透明主题及Activity中根布局的background,以实现滑动时,上一个Activity可见。 Activity根布局背景: android:background="?android:colorBackground" Activity主题: <style name="Translucent" parent="AppTheme"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation</item> </style> 1.使用OnTouchEvent,处理触摸事件实现滑动退出 先来看看具体实现: /** * @author

侧滑关闭activity之新特性SwipeBackActivity讲解

女生的网名这么多〃 提交于 2019-12-02 12:33:42
这是5.0以后的新特性(此功能好像在低版本有问题,5.0以上没有黑屏) 使用步骤如下: 1、导入SwipeBackActivity库 2、让当前activity继承于SwipeBackActivity 3、//测拉关闭的控件 private SwipeBackLayout mSwipeBackLayout; mSwipeBackLayout = getSwipeBackLayout(); 4、//设置activity的关闭模式 int edgeFlag = SwipeBackLayout.EDGE_RIGHT; int edgeFlag = SwipeBackLayout.EDGE_BOTTOM; int edgeFlag = SwipeBackLayout.EDGE_ALL; int edgeFlag = SwipeBackLayout.EDGE_LEFT; // 以上有四种模式可供选择 5、mSwipeBackLayout.setEdgeTrackingEnabled(edgeFlag);//设置选择使用什么模式 6、//如何避免低版本的滑动黑屏现象?? //把应用的theme设置为透明<!--设置窗口透明,避免滑动时是黑的--> <item name="android:windowIsTranslucent">true</item> //主activity设置为不透明<!-

侧滑销毁Activity

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 12:33:15
依赖: compile 'com.jude:swipebackhelper:3.1.2' 在准备销毁的Activity里: public class HomeActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); SwipeBackHelper.onCreate(this); SwipeBackHelper.getCurrentPage(this) .setSwipeBackEnable(true) .setSwipeSensitivity(0.5f) .setSwipeRelateEnable(true) .setSwipeRelateOffset(300); } @Override protected void onDestroy() { SwipeBackHelper.onDestroy(this); super.onDestroy(); } } 这个时候你侧滑的时候会出现黑屏效果,解决方案如下: 在res--->values--->styles,添加一个style样式 <style

仿微信的侧滑退出Activity

北慕城南 提交于 2019-12-02 12:20:24
用苹果的小伙伴们都会知道,ios系统退出当前的页面只需要向右边侧滑,这是一个非常好的用户体验,但是Android官方并没有出具有这有性质的Activity,所以我们只能辛苦辛苦,自己动手写一个具有这种性质的Activity。 其实写这个自定义的Activity还是非常简单的。我们主要用到一个这个控件SlidingPaneLayout,使用这个控件来模拟我们的这种效果的好处是我们基本不用去管一些手势事件冲突问题,SlidingPaneLayout已经帮我们做好了; public abstract class BaseActivity extends AppCompatActivity implements SlidingPaneLayout . PanelSlideListener { @Override protected void onCreate (Bundle savedInstanceState) { initSwipeBackFinish(); super .onCreate(savedInstanceState); } /** * 初始化滑动返回 */ private void initSwipeBackFinish () { if (isSupportSwipeBack()) { SlidingPaneLayout slidingPaneLayout = new

android 仿微信右滑返回

时间秒杀一切 提交于 2019-12-02 12:18:19
有这么一个开源项目,封装的右滑返回, 如果安卓基础不错的,可以 直接看源码: https://github.com/bingoogolapple/BGASwipeBackLayout-Android 以下是我单独分离出来一个仿微信右滑返回的小demo. 以下为效果图 下面是实现过程: 1.首页要依赖如下包: compile 'cn.bingoogolapple:bga-swipebacklayout:1.0.8@aar' 2. 新建 App 用来初始化swipebacklayout控件 public class App extends Application { @Override public void onCreate() { super.onCreate(); // 必须在 Application 的 onCreate 方法中执行 BGASwipeBackManager.getInstance().init(this) 来初始化滑动返回 BGASwipeBackManager.getInstance().init(this); } } 并且,在mainifest.xml里面更改默认的Application,改为 App 3.封装一个BaseActivity 让所有有右滑返回功能的Activity 继承 public abstract class BaseActivity

Android滑动退出Activity的三方框架swipebacklayout

故事扮演 提交于 2019-12-02 12:17:21
//在 build.gradle 依赖 compile 'me.imid.swipebacklayout.lib:library:1.0.0' 然后直接让你想滑动退出到的Activity去继承 SwipeBackActivity Activity的默认背景颜色为黑色,所以滑动退出的时候是黑色,在style里面加一种风格 < style name= "名称" parent= "AppTheme" > < item name= "android:windowIsTranslucent" >true</ item > </ style > 然后再清单文件中配置该Activity的主题 < activity android :name= "配置的Activity" android :theme= "@style/ 名称 " /> 来源: CSDN 作者: Hello_MR_Li 链接: https://blog.csdn.net/Hello_MR_Li/article/details/76595341

【Android】Activity右滑返回的实现

孤者浪人 提交于 2019-12-02 12:15:52
Activity右滑返回的实现 转载请注明出处: http://blog.csdn.net/h28496/article/details/49227419 1. 滑动返回的效果 效果描述: 从左侧向右滑动将当前Activity向右移动,并显示出下方的Activity。 在移动的过程中,透明部分有透明度的变化。 2. 如何使得Activity滑动? 1. 要滑动的是什么? 我们要滑动的是整个Activity的视图。不太清楚Activity视图结构的可以看一下下面这张图: 一般在代码中通过setContentView(View view)把view放到了android.R.id.content对应的FrameLayout中。 与该FrameLayout平级的还有它下面那些View,比如ActionBar等。 如果我们要使得整个Activity的界面滑动,就需要使得根布局decorView滑动。 通过在Activity中用如下代码可以获得decorView: View decorView = getWindow().getDecorView(); 2. 具体怎么滑动? 当手指按下时,获得按下时的坐标(xDown, yDown) 手指移动时,获得当前手指坐标(xCurrent, yCurrent),可以得到水平移动距离 distanceX = xCurrent - xDown