中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android的ViewFlipper與GestureDet

發布時間:2020-03-01 02:33:01 來源:網絡 閱讀:540 作者:YuLi1207 欄目:移動開發

  用ViewFlipper與GestureDetector來實現圖片的左右滑動效果。

  首先在布局xml中添加ViewFlipper控件:

 <ViewFlipper
        android:id="@+id/flipper"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </ViewFlipper>

  在Activity中實現GestureDetector的OnGestureListener監聽:

mGesture = new GestureDetector(this, this);
public boolean onDown(MotionEvent e) {
		return false;
	}
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		return false;
	}
	public void onLongPress(MotionEvent e) {
	}
	public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
			float distanceY) {
		return false;
	}
	public void onShowPress(MotionEvent e) {
	}
	public boolean onSingleTapUp(MotionEvent e) {
		return false;
	}

為ViewFilpper加入View,如圖片、文字等:

mFilpper = (ViewFlipper) findViewById(R.id.flipper);
		mFilpper.addView(addImageView(R.drawable.chrysanthemum));
		mFilpper.addView(addImageView(R.drawable.desert));
		mFilpper.addView(addImageView(R.drawable.ic_launcher));
		mFilpper.addView(addImageView(R.drawable.koala));
		mFilpper.addView(addImageView(R.drawable.penguins));
		mFilpper.addView(addImageView(R.drawable.lighthouse));
		mFilpper.addView(addText("你好"));
public ImageView addImageView(int resId) {
		ImageView p_w_picpath = new ImageView(this);
		p_w_picpath.setImageResource(resId);
		return p_w_picpath;
	}

	private View addText(String string) {
		TextView textView = new TextView(this);
		textView.setText(string);
		return textView;
	}

在onFling()中編寫滑動效果:

@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
			float velocityY) {
		Log.e("onFling", "onFling");
		if (e1.getX() - e2.getX() > 120) {
			mFilpper.setInAnimation(AnimationUtils.loadAnimation(this,
					R.anim.left_in));
			mFilpper.setOutAnimation(AnimationUtils.loadAnimation(this,
					R.anim.left_out));
			mFilpper.showPrevious();

		} else if (e2.getX() - e1.getX() > 120) {
			mFilpper.setInAnimation(AnimationUtils.loadAnimation(this,
					R.anim.rigth_in));
			mFilpper.setOutAnimation(AnimationUtils.loadAnimation(this,
					R.anim.right_out));
			mFilpper.showNext();
		}
		return false;
	}

其中的left_in.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <alpha
        android:duration="1000"
        android:fromAlpha="0"
        android:toAlpha="1" />
    <translate
        android:duration="1000"
        android:fromXDelta="100%p"
        android:toXDelta="0" />
</set>

left_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <alpha
        android:duration="1000"
        android:fromAlpha="1"
        android:toAlpha="0" />
    <translate
        android:duration="1000"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />
</set>

right_in.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <alpha
        android:duration="1000"
        android:fromAlpha="0"
        android:toAlpha="1" />
    <translate
        android:duration="1000"
        android:fromXDelta="-100%p"
        android:toXDelta="0" />
</set>

right_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <alpha
        android:duration="1000"
        android:fromAlpha="1"
        android:toAlpha="0" />
    <translate
        android:duration="1000"
        android:fromXDelta="0"
        android:toXDelta="100%p" />
</set>

最后還要重寫onTouchEvent()方法在其中調用GestureDetector的onTouchEvent()方法:

@Override
	public boolean onTouchEvent(MotionEvent event) {
		Log.e("onTouchEvent", "onTouchEvent");
		return mGesture.onTouchEvent(event);
	}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尼勒克县| 同心县| 南投县| 抚顺市| 阜阳市| 河间市| 梨树县| 闻喜县| 云林县| 巫山县| 新郑市| 敦煌市| 五河县| 留坝县| 莒南县| 米脂县| 如东县| 惠来县| 尼勒克县| 嵊州市| 兴仁县| 榆社县| 周口市| 镇远县| 武清区| 北安市| 柳州市| 丰顺县| 新宁县| 象州县| 新郑市| 若尔盖县| 贵港市| 平远县| 舟山市| 阿城市| 奈曼旗| 察雅县| 枣庄市| 恭城| 文山县|