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

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

本文实例讲述了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程序设计有所帮助。

标签:Android,滑动,切换背景
0
投稿

猜你喜欢

  • Java ClassLoader虚拟类实现代码热替换的示例代码

    2022-06-25 03:08:52
  • C#利用com操作excel释放进程的解决方法

    2022-08-02 07:01:28
  • Java中BufferedReader和BufferedWriter使用方式

    2022-01-06 15:06:05
  • Java Filter 过滤器详细介绍及实例代码

    2023-11-26 01:04:39
  • c#实现一元二次方程求解器示例分享

    2023-01-03 21:15:30
  • Spark内存调优指南

    2022-07-28 09:22:25
  • 详解SpringBoot 快速整合MyBatis(去XML化)

    2022-08-19 16:42:54
  • Java monitor机制使用方法解析

    2023-11-09 11:25:56
  • 深入剖析Java工厂模式让你的代码更灵活

    2022-05-26 00:42:28
  • Java用数组实现循环队列的示例

    2022-06-26 15:09:48
  • 一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    2021-06-26 23:21:16
  • 详解java 三种调用机制(同步、回调、异步)

    2023-11-25 07:59:57
  • java调用ffmpeg实现转换视频

    2022-08-25 15:21:04
  • MyBatis 如何配置多个别名 typeAliasesPackage

    2021-11-16 06:35:54
  • Java链表数据结构及其简单使用方法解析

    2022-11-20 23:42:53
  • Java中方法名称和泛型相同的用法示例

    2023-08-12 03:18:55
  • Java String、StringBuffer与StringBuilder的区别

    2022-08-29 23:29:55
  • Java中@ConfigurationProperties实现自定义配置绑定问题分析

    2023-01-23 23:23:47
  • 详解C# 利用反射根据类名创建类的实例对象

    2023-12-20 12:42:41
  • SpringBoot与Angular2的集成示例

    2021-09-02 22:24:55
  • asp之家 软件编程 m.aspxhome.com