ホームページ  >  記事  >  Java  >  左右のスライドで背景を切り替えるAndroidプログラミング方法

左右のスライドで背景を切り替えるAndroidプログラミング方法

高洛峰
高洛峰オリジナル
2017-01-13 11:46:291223ブラウズ

この記事の例では、背景を左右にスライドさせて切り替える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 プログラミング方法の詳細については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。