>  기사  >  Java  >  배경을 전환하기 위해 왼쪽 및 오른쪽 슬라이딩을 구현하는 Android 프로그래밍 방법

배경을 전환하기 위해 왼쪽 및 오른쪽 슬라이딩을 구현하는 Android 프로그래밍 방법

高洛峰
高洛峰원래의
2017-01-13 11:46:291241검색

이 기사의 예에서는 왼쪽 및 오른쪽 슬라이딩 전환 배경을 구현하는 Android 프로그래밍 방법을 설명합니다. 참고하실 수 있도록 모두와 공유해 주세요. 자세한 내용은 다음과 같습니다.

최근 좌우로 슬라이드하여 배경 이미지를 전환하는 애플리케이션을 만들고 싶어서 연구 결과를 공유하고 싶습니다.

이는 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 프로그래밍 방법 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.