滑动切换Activity
2015-08-03 23:12
579 查看
百度贴吧有滑动切换Activity的功能,感觉很方便:
这种功能要自己写还是挺复杂的,幸运的是,已经有比较成熟的开源项目,项目地址:https://github.com/r0adkll/Slidr。下面将使用这个开源项目,快速实现相似的功能。
这样配置以后,需要在这个两个Activity的布局文件中的最顶层的Layout中,为Activity设置背景(否则Activity会是透明的):
然后,在需要滑动的Activity里面配置Slidr:
先定义两个全局变量:
然后配置
下面解释一下各个配置项代表的意思:
.primaryColor(primary)//滑动时状态栏的渐变结束的颜色
.secondaryColor(secondary)//滑动时状态栏的渐变开始的颜色
.scrimColor(Color.BLACK)//滑动时Activity之间的颜色
. position(SlidrPosition.LEFT)//从左边滑动
.scrimStartAlpha(0.8f)//滑动开始时两个Activity之间的透明度
.scrimEndAlpha(0f)//滑动结束时两个Activity之间的透明度
.velocityThreshold(5f)//超过这个滑动速度,忽略位移限定值就切换Activity
.distanceThreshold(.35f);//滑动位移占屏幕的百分比,超过这个间距就切换Activity
至此,所有的配置已经完成。
Demo地址:
AndroidStudio版:http://download.csdn.net/detail/jiangxuqaz/8957411
Eclipse版:http://download.csdn.net/detail/jiangxuqaz/9056051
这种功能要自己写还是挺复杂的,幸运的是,已经有比较成熟的开源项目,项目地址:https://github.com/r0adkll/Slidr。下面将使用这个开源项目,快速实现相似的功能。
一、导入Slidr到项目
在dependencies中加入下面一句,就可以引入开源库到当前项目:compile 'com.r0adkll:slidableactivity:2.0.3'
二、Slidr使用
需要准备两个Activity,唯一需要注意的是Activity的Theme需要重写下面的代码:<item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item>
这样配置以后,需要在这个两个Activity的布局文件中的最顶层的Layout中,为Activity设置背景(否则Activity会是透明的):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" tools:context="com.jx.slideactivity.OtherActivity">
然后,在需要滑动的Activity里面配置Slidr:
先定义两个全局变量:
SlidrConfig mSlidrConfig; SlidrConfig.Builder mBuilder;
然后配置
int primary = getResources().getColor(R.color.primaryDark); int secondary = getResources().getColor(R.color.accent); mBuilder = new SlidrConfig.Builder().primaryColor(primary) .secondaryColor(secondary) .scrimColor(Color.BLACK) .position(SlidrPosition.LEFT) .scrimStartAlpha(0.8f) .scrimEndAlpha(0f) .velocityThreshold(5f) .distanceThreshold(.35f); mSlidrConfig = mBuilder.build(); Slidr.attach(this, mSlidrConfig);
下面解释一下各个配置项代表的意思:
.primaryColor(primary)//滑动时状态栏的渐变结束的颜色
.secondaryColor(secondary)//滑动时状态栏的渐变开始的颜色
.scrimColor(Color.BLACK)//滑动时Activity之间的颜色
. position(SlidrPosition.LEFT)//从左边滑动
.scrimStartAlpha(0.8f)//滑动开始时两个Activity之间的透明度
.scrimEndAlpha(0f)//滑动结束时两个Activity之间的透明度
.velocityThreshold(5f)//超过这个滑动速度,忽略位移限定值就切换Activity
.distanceThreshold(.35f);//滑动位移占屏幕的百分比,超过这个间距就切换Activity
至此,所有的配置已经完成。
Demo地址:
AndroidStudio版:http://download.csdn.net/detail/jiangxuqaz/8957411
Eclipse版:http://download.csdn.net/detail/jiangxuqaz/9056051
三、运行效果
相关文章推荐
- java notepad++
- 分治和自顶向下动态规划算法
- CodeForces 498C Array and Operations(最大流)
- 5、C语言和设计模式(之组合模式)
- Linux互通SSH免密码访问
- 内存模型和名称空间
- BootStrap输入框组
- 8天学通MongoDB——第二天 细说增删查改
- MySQL查询子句(group by,limit,union,order by等)
- MySQL5.6主从复制(读写分离)
- 转!!java线程状态
- Linkedin Interview - Isomorphic Strings
- java发送邮件(2)
- SpringMVC + Spring 3.2.14 + Hibernate 3.6.10
- 函数fork和vfork
- Android 实例:通过自定义View组件实现跟随手指移动的小兔子
- 维特比算法在隐马尔可夫模型中的应用
- SpringMVC 文件上传配置,多文件上传,使用的MultipartFile
- SQLite with readline support on Ubuntu
- JNI——Java调用DLL