软件编程
位置:首页>> 软件编程>> Android编程>> Android编程实现左右滑动切换背景的方法

Android编程实现左右滑动切换背景的方法

作者:zqiang_55  发布时间:2022-03-21 17:56:49 

标签:Android,滑动,切换背景

本文实例讲述了Android编程实现左右滑动切换背景的方法。分享给大家供大家参考,具体如下:

最近想做一个左右滑动切换背景图片的应用,特地将自己的研究分享一下:

这个需要继承2个监听接口 OnGestureListener,  OnTouchListener

关于这2个接口大家可以在网上查一下

同时需要设置2个属性


bgLayout.setOnTouchListener(this);
bgLayout.setLongClickable(true);

并且在这个函数中有如下这几句话


public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return this.mGesture.onTouchEvent(event);
}

附送代码:


public class SwitcherActivity extends Activity implements OnGestureListener,
   OnTouchListener {
 /** Called when the activity is first created. */
 LinearLayout bgLayout = null;
 private GestureDetector mGesture = null;
 private int flag = 3;
 @Override
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
   mGesture = new GestureDetector(this);
   bgLayout = (LinearLayout) findViewById(R.id.bg);
   bgLayout.setBackgroundResource(R.drawable.bg3);
   bgLayout.setOnTouchListener(this);
   bgLayout.setLongClickable(true);
 }
 public boolean onDown(MotionEvent e) {
   // TODO Auto-generated method stub
   return false;
 }
 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
     float velocityY) {
   // 处理左右滑动
   if (e1.getX() - e2.getX() > 100) { // 向左滑动
     if (flag == 3) {
       bgLayout.setBackgroundResource(R.drawable.bg4);
       flag = 4;
       return true;
     }
     if (flag == 4) {
       bgLayout.setBackgroundResource(R.drawable.bg5);
       flag = 5;
       return true;
     }
     if (flag == 1) {
       bgLayout.setBackgroundResource(R.drawable.bg2);
       flag = 2;
       return true;
     }
     if (flag == 2) {
       bgLayout.setBackgroundResource(R.drawable.bg3);
       flag = 3;
       return true;
     }
   } else if (e1.getX() - e2.getX() < -100) { // 向右滑动
     if (flag == 3) {
       bgLayout.setBackgroundResource(R.drawable.bg2);
       flag = 2;
       return true;
     }
     if (flag == 2) {
       bgLayout.setBackgroundResource(R.drawable.bg1);
       flag = 1;
       return true;
     }
     if (flag == 5) {
       bgLayout.setBackgroundResource(R.drawable.bg4);
       flag = 4;
       return true;
     }
     if (flag == 4) {
       bgLayout.setBackgroundResource(R.drawable.bg3);
       flag = 3;
       return true;
     }
   }
   return false;
 }
 public void onLongPress(MotionEvent e) {
   // TODO Auto-generated method stub
 }
 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
     float distanceY) {
   // TODO Auto-generated method stub
   return false;
 }
 public void onShowPress(MotionEvent e) {
   // TODO Auto-generated method stub
 }
 public boolean onSingleTapUp(MotionEvent e) {
   // TODO Auto-generated method stub
   return false;
 }
 public boolean onTouch(View v, MotionEvent event) {
   // TODO Auto-generated method stub
   return this.mGesture.onTouchEvent(event);
 }
}

希望本文所述对大家Android程序设计有所帮助。

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com