Android_左右滑动切换背景

本文介绍了一款通过左右滑动手势来切换不同背景图片的应用实现方法。该应用使用了OnGestureListener和OnTouchListener两个监听接口,并展示了如何通过判断手指滑动的方向来更换背景图片的具体代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这个需要继承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);

}

附送代码:

[html]  view plain copy
  1. public class SwitcherActivity extends Activity implements OnGestureListener,  
  2.         OnTouchListener {  
  3.     /** Called when the activity is first created. */  
  4.     LinearLayout bgLayout = null;  
  5.     private GestureDetector mGesture = null;  
  6.     private int flag = 3;  
  7.   
  8.     @Override  
  9.     public void onCreate(Bundle savedInstanceState) {  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(R.layout.main);  
  12.   
  13.         mGesture = new GestureDetector(this);  
  14.   
  15.         bgLayout = (LinearLayout) findViewById(R.id.bg);  
  16.         bgLayout.setBackgroundResource(R.drawable.bg3);  
  17.         bgLayout.setOnTouchListener(this);  
  18.         bgLayout.setLongClickable(true);  
  19.     }  
  20.   
  21.     public boolean onDown(MotionEvent e) {  
  22.         // TODO Auto-generated method stub  
  23.         return false;  
  24.     }  
  25.   
  26.     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,  
  27.             float velocityY) {  
  28.         // 处理左右滑动  
  29.         if (e1.getX() - e2.getX() > 100) { // 向左滑动  
  30.             if (flag == 3) {  
  31.                 bgLayout.setBackgroundResource(R.drawable.bg4);  
  32.                 flag = 4;  
  33.                 return true;  
  34.             }  
  35.             if (flag == 4) {  
  36.                 bgLayout.setBackgroundResource(R.drawable.bg5);  
  37.                 flag = 5;  
  38.                 return true;  
  39.             }  
  40.             if (flag == 1) {  
  41.                 bgLayout.setBackgroundResource(R.drawable.bg2);  
  42.                 flag = 2;  
  43.                 return true;  
  44.             }  
  45.             if (flag == 2) {  
  46.                 bgLayout.setBackgroundResource(R.drawable.bg3);  
  47.                 flag = 3;  
  48.                 return true;  
  49.             }  
  50.         } else if (e1.getX() - e2.getX() < -100) { // 向右滑动  
  51.             if (flag == 3) {  
  52.                 bgLayout.setBackgroundResource(R.drawable.bg2);  
  53.                 flag = 2;  
  54.                 return true;  
  55.             }  
  56.             if (flag == 2) {  
  57.                 bgLayout.setBackgroundResource(R.drawable.bg1);  
  58.                 flag = 1;  
  59.                 return true;  
  60.             }  
  61.             if (flag == 5) {  
  62.                 bgLayout.setBackgroundResource(R.drawable.bg4);  
  63.                 flag = 4;  
  64.                 return true;  
  65.             }  
  66.             if (flag == 4) {  
  67.                 bgLayout.setBackgroundResource(R.drawable.bg3);  
  68.                 flag = 3;  
  69.                 return true;  
  70.             }  
  71.         }  
  72.         return false;  
  73.     }  
  74.   
  75.     public void onLongPress(MotionEvent e) {  
  76.         // TODO Auto-generated method stub  
  77.   
  78.     }  
  79.   
  80.     public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,  
  81.             float distanceY) {  
  82.         // TODO Auto-generated method stub  
  83.         return false;  
  84.     }  
  85.   
  86.     public void onShowPress(MotionEvent e) {  
  87.         // TODO Auto-generated method stub  
  88.   
  89.     }  
  90.   
  91.     public boolean onSingleTapUp(MotionEvent e) {  
  92.         // TODO Auto-generated method stub  
  93.         return false;  
  94.     }  
  95.   
  96.     public boolean onTouch(View v, MotionEvent event) {  
  97.         // TODO Auto-generated method stub  
  98.         return this.mGesture.onTouchEvent(event);  
  99.     }  
  100. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值