自定义控件之SlideMenu
来源:互联网 发布:自动对焦爬山算法 编辑:程序博客网 时间:2024/05/02 19:29
<span style="font-family: Arial, Helvetica, sans-serif;">package com.example.view;</span>
import android.content.Context;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.widget.FrameLayout;public class SlideMenu extends FrameLayout {private View menuView,mainView;private int downX;private int menuWidth;private ScrollAnimation animation;public SlideMenu(Context context, AttributeSet attrs) {super(context, attrs);}public SlideMenu(Context context) {super(context);}@Overrideprotected void onLayout(boolean changed, int left, int top, int right,int bottom) {menuView.layout(-menuWidth, 0, 0, bottom);mainView.layout(0, 0, right, bottom);}@Overrideprotected void onFinishInflate() {super.onFinishInflate();menuView=getChildAt(1);mainView=getChildAt(0);menuWidth = menuView.getLayoutParams().width;}@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:downX = (int)event.getX();break;case MotionEvent.ACTION_MOVE:int moveX=(int) event.getX();int deltaX=moveX-downX;int newscrollX = getScrollX()-deltaX;if(newscrollX>0){newscrollX=0;}if(newscrollX<-menuWidth){newscrollX=-menuWidth;}scrollTo(newscrollX, 0);break;case MotionEvent.ACTION_UP:int scrollX = getScrollX();if(scrollX<-menuWidth/2){animation = new ScrollAnimation(this, -menuWidth);}else{animation = new ScrollAnimation(this, 0);}startAnimation(animation);break;default:break;}return true;}public void switchMenu() {// TODO Auto-generated method stubScrollAnimation animation;if(getScrollX()!=0){animation=new ScrollAnimation(this, 0);}else{animation=new ScrollAnimation(this, -menuWidth);}startAnimation(animation);}}<img src="http://img.blog.csdn.net/20160209181815120?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20160209181848792?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
0 0
- 自定义控件之SlideMenu
- 自定义SlideMenu
- 自定义slideMenu
- 自定义slideMenu
- 由浅入深学习自定义控件(4)-滑动开关slidemenu
- 由浅入深学习自定义控件(6)- 超简捷的slidemenu实现
- 彷QQ5.0侧滑菜单(自定义控件--SlideMenu的实现)
- 自定义SlideMenu侧滑菜单
- 简单的自定义View-仿SlideMenu
- 自定义控件之翻页控件
- 自定义控件之组合控件
- 自定义控件之组合控件
- 自定义控件之组合控件
- 自定义控件之自定义属性
- 自定义控件之自定义开关
- 自定义控件之自定义xmlns
- Android自定义控件之自定义日历控件
- Android自定义控件之自定义组合控件
- #学习笔记#(36)JS初步实现todolist添加任务功能
- junit3对比junit4
- 那年声明理解不了定义与初始化(二)
- bzoj1924 所驼门王的宝藏 有向图最长链
- EJB对象的部署及客户端调用简单示例
- 自定义控件之SlideMenu
- 【Python 笔记】文件读写
- CentOS JDK设置
- #学习笔记#(37)自制2016年日期选择器-JS
- 在Android中现实滚动的几种方案
- 得到Linux操作系统的glibc版本信息
- spring【3】(struts2和spring的整合上)
- spring(DI)概念、xml方式给属性赋值
- hdu 2489 Minimal Ratio Tree 最小生成树