国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中利用viewflipper動畫切換屏幕效果

2019-12-12 05:13:38
字體:
來源:轉載
供稿:網友

整個項目的

package com.example.viewflipper;import android.R.integer;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.GestureDetector.OnDoubleTapListener;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.Window;import android.widget.ImageView;import android.widget.ViewFlipper;public class MainActivity extends Activity{private ViewFlipper flipper;private float startX;private int resId[] = { R.drawable.ic_girl2, R.drawable.ic_girl3,R.drawable.ic_girl4, R.drawable.ic_girl5, };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.main);flipper = (ViewFlipper) findViewById(R.id.viewflipper);// 動態導入的方式為ViewFlipper加入子VIEWfor (int i = 0; i < resId.length; i++) {flipper.addView(getImageView(resId[i]));}// overridePendingTransition(R.anim.left_in, R.anim.left_out);// flipper.setFlipInterval(3000); flipper.startFlipping();// 這樣的會實現類似幻燈片的效果// 為viewFlipper去添加動畫效果// flipper.setInAnimation(this, R.anim.left_in);// flipper.setOutAnimation(this, R.anim.left_out);// 設定ViewFlipper的時間間隔// flipper.setFlipInterval(3000);// 開始播放// flipper.startFlipping();}private ImageView getImageView(int resId) {ImageView imageView = new ImageView(this);// imageView.setImageResource(resId);寬高完全取決于圖片大小imageView.setBackgroundResource(resId);// 這樣就可以自適應return imageView;}@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubswitch (event.getAction()) {// 手指落下case MotionEvent.ACTION_DOWN:// 剛開始手指落下的坐標,獲得橫向坐標的x{ startX = event.getX();break;}// 手指移動case MotionEvent.ACTION_MOVE:{Log.i("Main", "調動次數");break;}// 手指離開case MotionEvent.ACTION_UP: {if (event.getX() - startX > 100) { // 向右滑動flipper.setInAnimation(this, R.anim.left_in);flipper.setOutAnimation(this, R.anim.left_out);flipper.showPrevious();// 顯示前一頁;}if (startX - event.getX() > 100) {// 向左滑動flipper.setInAnimation(this, R.anim.right_in);flipper.setOutAnimation(this, R.anim.right_out);flipper.showNext();// 顯示后一頁;}break;}}return super.onTouchEvent(event);}} <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="2000"android:fromXDelta="-100%p"android:toXDelta="0" /></set> <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="2000"android:fromXDelta="0"android:toXDelta="100%p" /></set> <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="2000"android:fromXDelta="100%p"android:toXDelta="0" /></set> <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="2000"android:fromXDelta="0"android:toXDelta="-100%p" /></set> <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ViewFlipperandroid:id="@+id/viewflipper"android:layout_width="match_parent"android:layout_height="match_parent"></ViewFlipper></LinearLayout>

感悟:ViewFlipper貌似可以做成新下載的應用 ,用戶第一次進入的大概描述。。最后再做個button,進入應用。

1.先在main.xml文件中添加viewflipper,然后在MainActivity中實例化,setContext布局要改掉,通過動態導入數據源的方法。

通過一個resId.length的for循環導入。 新建一個ImageView 對象的ImageView getImageView(int resId)函數

里面

// imageView.setImageResource(resId);寬高完全取決于圖片大小imageView.setBackgroundResource(resId);// 這樣就可以自適應

要用第二個好點。 然后返回一個對象。

在res/anim下分別建立4個xml 文件, left_in,left_out,right_in,right_out;

例:left_in 即如偏從左邊進來

<translateandroid:duration="2000" //持續時間為2sandroid:fromXDelta="-100%p"http://android:toXDelta="0" />

這里有2種實現方式

(1)overridePendingTransition(R.anim.left_in, R.anim.left_out);

//設定時間間隔 flipper.setFlipInterval(3000);flipper.startFlipping();//這樣的會實現類似幻燈片的效果

(2)flipper.setInAnimation(this, R.anim.left_in);

flipper.setOutAnimation(this, R.anim.left_out);// 設定ViewFlipper的時間間隔flipper.setFlipInterval(3000);// 開始播放// flipper.startFlipping();

然后加載一個boolean onTouchEvent(MotionEvent event)

設置一個全局變量private Float startX;//手指落下時的位置

通過event.getAction()獲取

case MotionEvent.ACTION_DOWN://手指落下時的{startX = event.getX(); }-->獲得剛開始的橫坐標case MotionEvent.ACTION_UP://手指離開{通過判斷event.getX()-startX>100判斷向右滑動,然后實現動畫,并顯示前一面startX-event.getX()<100判斷向左滑動,然后實現動畫,并顯示后一面}//手勢操作要在up中,若在down中會發生圖層折疊的問題。 通過Log.i("Main","次數");

可以看出手指稍微一動就會出現很多。

case MotionEvent.ACTION_MOVE://手指滑動時

以上所述是小編給大家介紹的Android中利用viewflipper動畫切換屏幕效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高阳县| 社会| 卫辉市| 凤翔县| 布尔津县| 斗六市| 榆社县| 阳朔县| 永修县| 中山市| 周至县| 承德县| 罗江县| 肥城市| 偃师市| 浦东新区| 隆回县| 清流县| 镇宁| 醴陵市| 门源| 平泉县| 济南市| 道真| 军事| 班玛县| 赤城县| 沛县| 凉城县| 葫芦岛市| 寻甸| 嘉峪关市| 玛纳斯县| 襄城县| 邯郸市| 怀安县| 浠水县| 买车| 佛坪县| 阿图什市| 安徽省|