Android編程實現(xiàn)左右滑動切換背景的方法
本文實例講述了Android編程實現(xiàn)左右滑動切換背景的方法。分享給大家供大家參考,具體如下:
最近想做一個左右滑動切換背景圖片的應(yīng)用,特地將自己的研究分享一下:
這個需要繼承2個監(jiān)聽接口 OnGestureListener, OnTouchListener
關(guān)于這2個接口大家可以在網(wǎng)上查一下
同時需要設(shè)置2個屬性
bgLayout.setOnTouchListener(this); bgLayout.setLongClickable(true);
并且在這個函數(shù)中有如下這幾句話
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);
}
}
更多關(guān)于Android圖片與特效相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開發(fā)動畫技巧匯總》和《Android圖形與圖像處理技巧總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
相關(guān)文章
Android三方依賴沖突Gradle中exclude的使用
這篇文章主要介紹了Android三方依賴沖突Gradle中exclude的使用,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
flutter showModalBottomSheet常用屬性及說明
這篇文章主要介紹了flutter showModalBottomSheet常用屬性及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Android原生TabLayout使用的超全解析(看這篇就夠了)
現(xiàn)在很多app都有頂部可左右切換的導(dǎo)航欄,并且還帶動畫效果,要實現(xiàn)這種導(dǎo)航欄,可以使用Android原生的Tablayout也可以借助第三方框架實現(xiàn),這篇文章主要給大家介紹了關(guān)于Android原生TabLayout使用的相關(guān)資料,需要的朋友可以參考下2022-09-09
Android App在ViewPager中使用Fragment的實例講解
這篇文章主要介紹了Android App在ViewPager中使用Fragment的實例講解,ViewPager組件主要被用來制作滑動切換效果,需要的朋友可以參考下2016-03-03
Android使用CrashHandler來獲取應(yīng)用的crash信息的方法
本篇文章主要介紹了Android使用CrashHandler來獲取應(yīng)用的crash信息的方法,具有一定的參考價值,有興趣的可以了解一下2017-09-09
Android 系統(tǒng)實現(xiàn)多種開機動畫和logo切換功能
這篇文章主要介紹了android 系統(tǒng)實現(xiàn)多種開機動畫和logo切換功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-12-12

