相信玩过QQ的小伙伴们都知道侧滑是个什么样子,侧滑,顾名思义就是可以向左侧或者右侧滑动的功能,队友手机来说,屏幕本来就小的可怜,每一处地方更是寸土寸金,因此有想法的人就在想着怎样充分利用手机的小屏幕又不影响美观,这样,侧滑功能就应运而生,越来越多得到APP也都使用到了侧滑这一功能。
侧滑功能实现的方法可能有多种多样,第一种就是官方提供的drawerLayout这个控件,个人觉得该控件实现该效果稍稍有点复杂,不过有兴趣的同学可以去学习一下。我今天想讲的是利用第三方提供的jar包实现该功能,几行代码就能实现想要的效果
话不多说,接下来进入正题—-代码分析。
①下载jar包,点这里http://download.csdn.net/detail/leihuiaa/9668321
下载之后导入到自己的工程
②写三个布局文件
main_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="演示左右侧滑"
/>
LinearLayout>
left_content.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0000ff"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="您向左边滑动了"
/>
LinearLayout>
right_content.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0000ff"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="您向左边滑动了"
/>
LinearLayout>
在dimens.xml声明一下属性,便于diaoyong
<dimen name="activity_horizontal_margin">16dpdimen>
<dimen name="activity_vertical_margin">16dpdimen>
<dimen name="slidingmenu_offset">80dpdimen>
<dimen name="shadow_width">15dpdimen>
③新建一个SlideLeft 类
public class SlideLeft extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.left_mune);
SlidingMenu menu = new SlidingMenu(this);
//设置向左边滑动
menu.setMode(SlidingMenu.LEFT);
//设置触摸屏幕的模式
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width);
menu.setShadowDrawable(R.drawable.ic_launcher);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setFadeDegree(0.45f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
//设置屏幕滑动后要显示的内容
menu.setMenu(R.layout.left_content);
}
}
④新建一个SlideLeft 类
public class SlideRight extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.right_mune);
SlidingMenu menu = new SlidingMenu(this);
//设置向右边边滑动
menu.setMode(SlidingMenu.RIGHT);
//设置触摸屏幕的模式
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setShadowWidthRes(R.dimen.shadow_width2);
menu.setShadowDrawable(R.drawable.ic_launcher);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset2);
menu.setFadeDegree(0.85f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
menu.setMenu(R.layout.right_content);
}
}
最后在MainActivity中分别取执行者两个类中的内容
public void click1(View v){
Intent intent = new Intent(MainActivity.this,SlideLeft.class);
startActivity(intent);
}
public void click2(View v){
Intent intent = new Intent(MainActivity.this,SlideRight.class);
startActivity(intent);
}
接下来看一下演示的效果
效果有点丑,不过没关系,想要的效果出来就够了,布局可以回家在即再好好研究,布的漂亮一些
是不是很简单,当然了,这还只是简单的,基础的用法,后面深入一点的可以自己先去自学或者请听我下回再向你慢慢道来。
对于没能实现的小伙伴也不要着急,点击这里下载源码,http://download.csdn.net/detail/leihuiaa/9668328,慢慢分析