package com.mydemo.mei;
import com.mydemo.mei.util.Util;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MyMoveView extends ViewGroup {
private final static int TOUCH_STATE_REST = 0;
private final static int TOUCH_STATE_MOVING = 1;
private final static int MOVE_TO_LEFT = 1;
private final static int MOVE_TO_RIGHT = 2;
private final static int MOVE_TO_REST = 0;
public final static int MAIN = 0;
public final static int LEFT = 1;
public final static int RIGHT = 2;
private int touch_state = TOUCH_STATE_REST;
private int move_state = MOVE_TO_REST;
private int now_state = LEFT;
private final float WIDTH_RATE = 0.83f;
private BaseView main_show_view;
private LeftMenuView left_show_view;
private View firstView;
private ImageView image_01;
private ImageView image_02;
private Context context;
private int currentTab;//当前的activity
private int min_distance = 200;
private final int MOVE_TIME=10;//移动时间
private int move_main= 90;//移动距离
private int move_left = 40;//移动的最后距离
private int screen_w;
private int screen_h;
private int move_x_v;
private boolean isFaceRuturn = true;//是否界面返回
private boolean isStarted = false;//是否刚启动,false:一进来显示左边,true,显示中间
private boolean isAimationMoving = false;
private boolean isMoveEnable = true;
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
synchronized (MyMoveView.this) {
isAimationMoving = true;
int move_change = (int) (screen_w * WIDTH_RATE / 5);
int left = main_show_view.getView().getLeft();
if (msg.what == 1) {
move(move_change + left);
}
if (msg.what == 11) {
isAimationMoving = false;
moveToLeft(false);
}
if (msg.what == 2) {
move(-1 * move_change + left);
}
if (msg.what == 0) {
if (now_state == LEFT) {
move(-1 * move_x_v);
} else {
move(move_x_v);
}
}
if (msg.what == 10) {
isAimationMoving = false;
moveToMain(false,0);
}
}
}
};
public MyMoveView(Context context) {
super(context);
this.context = context;
initView();
}
public MyMoveView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
initView();
}
public MyMoveView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
this.context = context;
initView();
}
/**
* 初始化移动布局
* @param main_show_view
* @param currentTab
*/
public void initView(){
Display display = ((Activity)context).getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int Height = display.getHeight();
this.screen_w = width;
this.screen_h = Height;
this.move_main =Util.getWindowWidth(context)/5;
this.move_left = Util.getWindowWidth(context)/10;
this.setKeepScreenOn(true);
this.min_distance = (int) (screen_w / 5.0);
}
/**
*
* @param main_show_view
* @param currentTab
*/
public void setMainView(BaseView mainView,LeftMenuView leftView,int curTab){
this.currentTab = curTab;
if(this.left_show_view == null){
this.left_show_view = leftView;
this.addView(left_show_view.getView());
}
if(this.main_show_view == null){
this.addView(mainView.view);
}else{
this.removeView(this.main_show_view.view);
this.addView(mainView.view);
}
this.main_show_view = mainView;
if(isStarted){
moveToMain(isFaceRuturn,0);
}else{
isStarted=true;
}
if(!isFaceRuturn){
isFaceRuturn = true;
}
}
public void move(int start) {
int left = main_show_view.getView().getLeft();
if (now_state == MAIN) {
if (left > 0) {
if (move_state != MOVE_TO_LEFT) {
move_state = MOVE_TO_LEFT;
}
left_show_view.getView().setVisibility(View.VISIBLE);
} else if (left < 0) {
if (move_state != MOVE_TO_RIGHT) {
move_state = MOVE_TO_RIGHT;
}
left_show_view.getView().setVisibility(View.GONE);
} else {
move_state = MOVE_TO_REST;
}
main_show_view.getView().layout(start, 0, start + screen_w,
screen_h);
} else {
left = (int) (screen_w * WIDTH_RATE);
if (now_state == RIGHT) {
left = -1 * left;
}
left = left + start;
main_show_view.getView().layout(left, 0, left + screen_w, screen_h);
}
}
@Override
protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int arg4) {
if (move_state == MOVE_TO_REST) {
if (now_state == MAIN) {
int w = (int) (screen_w * WIDTH_RATE);
main_show_view.getView().layout(0, 0, screen_w, screen_h);
left_show_view.getView().layout(0, 0, w, screen_h);
} else if (now_state == LEFT) {
moveToLeft(false);
}
}
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// ULog.d("msg", "" + widthMeasureSpec);
main_show_view.view.measure(widthMeasureSpec, heightMeasureSpec);
left_show_view.getView().measure(MeasureSpec.UNSPECIFIED,
heightMeasureSpec);
left_show_view.setWidth((int) (screen_w * WIDTH_RATE));
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
private int start_x;
private int start_y;
private boolean isMoved;
public boolean dispatchTouchEvent(MotionEvent ev) {
if(!isMoveEnable){
return false;
}
try{
int action = ev.getAction();
float x = ev.getX();
float y = ev.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:// 按下去
super.dispatchTouchEvent(ev);
start_y = (int) y;
move_x_v = 0;
if (this.touch_state == TOUCH_STATE_REST) {
this.touch_state = TOUCH_STATE_MOVING;
start_x = (int) x;
isMoved = false;
move_state = MOVE_TO_REST;
}
break;
case MotionEvent.ACTION_MOVE:// 拖动时
int last_y = (int) y;
int last_x = (int) x;
super.dispatchTouchEvent(ev);
if (!isMoved) {
if (Math.abs(last_y - start_y) > Math.abs(last_x - start_x)) {
return super.onTouchEvent(ev);
//return true;
} else {
/*if (Math.abs(last_x - start_x) > 10) {
isMoved = true;
}*/
if(last_x - start_x > 10 || ( Math.abs(last_x - start_x) > 10 && now_state == LEFT ) ){
isMoved=true;
}
}
}
if (isMoved) {
if (this.touch_state == TOUCH_STATE_MOVING) {
int move_x = last_x - start_x;
if(move_x<0 && now_state==MAIN){
return false;
}
if (Math.abs(last_x - start_x) > 10) {
int left =main_show_view.view.getLeft();
Log.d("msg", "left:" + left);
Log.d("msg", "x:" + last_x);
isMoved = true;
Log.d("msg", "move_x:"+move_x+",now_state:"+now_state);
if (move_x > 0 && now_state == LEFT) {
isMoved = false;
break;
}
main_show_view.setScroll(false);
move(move_x);
}
}
return false;
}
break;
case MotionEvent.ACTION_UP:// 放开时
main_show_view.setScroll(true);
if (this.touch_state == TOUCH_STATE_MOVING) {
if (isMoved) {
last_x = (int) x;
Log.d("msg", "UP:"+Math.abs(last_x - start_x)+",now:"+now_state);
Log.d("msg", "now_state:"+now_state+",move_state:"+move_state);
if (Math.abs(last_x - start_x) >= 50)
没有合适的资源?快使用搜索试试~ 我知道了~
小程序 侧边栏滑动.rar
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共66个文件
class:31个
java:13个
xml:7个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 27 浏览量
2023-02-03
11:42:13
上传
评论
收藏 132KB RAR 举报
温馨提示
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 66 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
大富大贵7
- 粉丝: 324
- 资源: 8868
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)