注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

姑射道人的博客

博客新地址:nixuchen.com

 
 
 

日志

 
 

android手势划出界面  

2013-12-19 13:04:16|  分类: android |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
public class SlideActivity extends Activity {
LinearLayout slideView;
String TAG="SlideActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slide);
slideView=(LinearLayout) findViewById(R.id.slide);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
slideView.setOnTouchListener(new View.OnTouchListener() {
PointF start = new PointF();
PointF end=new PointF();
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Log.i(TAG, "touch event X:"+event.getX());
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
start.x=event.getX();
start.y=event.getY();
break;
case MotionEvent.ACTION_MOVE:
float deltaX=event.getX()-start.x;
float deltaY=event.getY()-start.y;
float distance=(float) Math.sqrt(deltaX*deltaX+deltaY*deltaY);
Log.i(TAG, "distance:"+deltaX);
resetSlideViewSize(deltaX);
break;

default:
break;
}
return true;
}
});
}
private void resetSlideViewSize(float deltaX){
DisplayMetrics dm=new DisplayMetrics();
dm=getResources().getDisplayMetrics();
final FrameLayout.LayoutParams params=new FrameLayout.LayoutParams(dm.widthPixels, dm.heightPixels);
TranslateAnimation animRight=new TranslateAnimation(-dm.widthPixels, 0,0, 0);
animRight.setDuration(500);
TranslateAnimation animLeft=new TranslateAnimation(0,-dm.widthPixels,0, 0);
animLeft.setDuration(500);
final Handler myHandler = new Handler() {  
         public void handleMessage(Message msg) {   
              switch (msg.what) {   
                   case 0:
                    slideView.setLayoutParams(params);
                        break;   
              }   
              super.handleMessage(msg);   
         }   
    };  
if(deltaX<0){
params.width=DensityUtil.DipToPixels(this, 20);
slideView.startAnimation(animLeft);
Timer timer=new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
myHandler.sendEmptyMessage(0);
}
}, 500);
}else{
slideView.setLayoutParams(params);
slideView.startAnimation(animRight);
}
}

}
  评论这张
 
阅读(613)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017