Android programming to achieve the left and right sliding switch background method
- 2021-01-25 07:52:55
- OfStack
This article describes the Android programming to achieve the left and right sliding switch background method. To share with you for your reference, as follows:
Recently I want to do a sliding switch background image application, especially to share their own research 1:
This needs to inherit two listening interfaces, OnGestureListener, OnTouchListener
About these 2 interfaces you can check 1 on the Internet
Two properties need to be set at the same time
bgLayout.setOnTouchListener(this);
bgLayout.setLongClickable(true);
And in this function there are the following sentences
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return this.mGesture.onTouchEvent(event);
}
Attached code:
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) {
// Handling left and right sliding
if (e1.getX() - e2.getX() > 100) { // Scroll left
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) { // Slide to the right
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);
}
}
For more information on Android graphics and special effects, you can check out Android Animation Development Tips and Android Graphics and Image Processing Tips.
I hope this article is helpful to Android program design.