本文實例講述了Android編程實現左右滑動切換背景的方法。分享給大家供大家參考,具體如下:
最近想做一個左右滑動切換背景圖片的應用,特地將自己的研究分享一下:
這個需要繼承2個監聽接口 OnGestureListener, OnTouchListener
關于這2個接口大家可以在網上查一下
同時需要設置2個屬性
bgLayout.setOnTouchListener(this);bgLayout.setLongClickable(true);
并且在這個函數中有如下這幾句話
public boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubreturn 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開發動畫技巧匯總》和《Android圖形與圖像處理技巧總結》
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答
圖片精選