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

溫馨提示×

溫馨提示×

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

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

如何使用Android實現漸變啟動頁和帶有指示器的引導頁

發布時間:2021-09-27 11:17:29 來源:億速云 閱讀:141 作者:小新 欄目:編程語言

小編給大家分享一下如何使用Android實現漸變啟動頁和帶有指示器的引導頁,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

實現步驟:

1.首先我們做個有漸變動畫的啟動頁面SplashActivity

在onCreate里設置核心方法setAlphaAnimation()

public void setAlphaAnimation(){   //生成AlphaAnimation的對象   AlphaAnimation animation= new AlphaAnimation(this);   //設置動畫的持續時間   animation.setDuration(3000);   //給要漸變的控件設置動畫,比如說imageview,textview,linearLayout之類的   ll.setAnimation(animation);   //設置動畫監聽,結束時跳轉到下一個頁面(首次打開就是引導頁面,反之就是主頁)   animation.setAnimationListener(new Animation.AnimationListener(){      public void onAnimationStart(Animation animation){ }      public void onAnimationEnd(Animation animation){          jump2Activity();            }      public void onAnimationRepeat(Animation animation){ }   });}

分析一下這個跳轉方法jump2Activity(),我們這里使用SharedPeference來判斷應用是否首次打開,設變量isFirst默認值為0,進入引導頁跳轉到主頁時再把這個值設為1,這樣,每次跳轉時判斷isFirst的值,如果仍是默認值0則為首次打開進入引導頁,反之進入主頁。

public void jump2Activity(){  SharedPreferences sharedPreference= getSharedPreferences("data", MODE_PRIVATE);  String isFirst= sharedPreferences.getString("isFirst", "0");  Intent intent= new Intent();    if("0".equals(isFirst)){    intent.setClass(this, GuideActivity.class);  }else{    intent.setClass(this. MainActivity.class);  }  startActivity(intent);  finish();}

2.接下來我們做引導頁面

引導頁面是由三個控件組成,Viewpager,圓點指示器的線性布局linearlayout,最后一頁的 “進入應用”按鈕。

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">  <android.support.v4.view.ViewPager  android:id="@+id/guide_vp"  android:layout_width="match_parent"  android:layout_height="match_parent" />  <LinearLayout  android:id="@+id/guide_ll"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_alignParentBottom="true"  android:layout_centerHorizontal="true"  android:layout_marginBottom="100dp"  android:orientation="horizontal" />  <Button  android:id="@+id/guide_btn"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_above="@id/guide_ll"  android:layout_centerHorizontal="true"  android:text="進入應用"  android:layout_marginBottom="10dp"  android:visibility="gone"/> </RelativeLayout>

在GuideActivity中,首先初始化引導圖片

/** * 初始化圖片 */private void initImgs() { ViewPager.LayoutParams params= new ViewPager.LayoutParams(); imageViews= new ArrayList<ImageView>(); for (int i= 0; i< imgs.length; i++){  ImageView imageView= new ImageView(this);  imageView.setLayoutParams(params);  imageView.setImageResource(imgs[i]);  imageView.setScaleType(ImageView.ScaleType.FIT_XY);  imageViews.add(imageView); }}

初始化底部圓點指示器,這里值得一提的是我們給各圓點設置相應的點擊事件,當點擊某個位置的圓點時,viewpager自動切換到相應位置的圖片,不過實際應用中這里實用性不是很大,因為圓點太小,可觸摸范圍有限,點擊事件不太好觸發。

/** * 初始化底部圓點指示器 */private void initDots() { LinearLayout layout= findViewById(R.id.guide_ll); LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(20, 20); params.setMargins(10, 0, 10, 0); dotViews= new ImageView[imgs.length]; for (int i= 0; i< imageViews.size(); i++){  ImageView imageView= new ImageView(this);  imageView.setLayoutParams(params);  imageView.setImageResource(R.drawable.dotselector);  if (i== 0){   imageView.setSelected(true);  }else{   imageView.setSelected(false);  }  dotViews[i]= imageView;  final int finalI = i;  dotViews[i].setOnClickListener(new View.OnClickListener() {   @Override   public void onClick(View view) {    vp.setCurrentItem(finalI);   }  });  layout.addView(imageView); }}

設置viewpager的滑動事件

vp.addOnPageChangeListener(this);

生成三個方法,我們主要在onPageSelected()方法中做操作,當某個位置的圓點被選中時,顯示選中后的圖片,其余圓點顯示未選中的圖片,這里主要應用selector控制器,至于相應的選中未選中圓點圖片需要大家去找。當滑動到最后一個頁面時,將 "進入應用"的按鈕顯示,反之隱藏。

@Overridepublic void onPageScrolled(int i, float v, int i1) {} @Override public void onPageScrollStateChanged(int i) {} @Overridepublic void onPageSelected(int arg0) { for (int i= 0; i< dotViews.length; i++){  if (arg0== i){   dotViews[i].setSelected(true);  }else {   dotViews[i].setSelected(false);  }   if (arg0== dotViews.length- 1){   btn.setVisibility(View.VISIBLE);  }else {   btn.setVisibility(View.GONE);  } }}

dotSelector.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/focus_on" android:state_selected="true"/> <item android:drawable="@drawable/focus_nomal" android:state_selected="false"/></selector>

在最后一個頁面點擊 "進入應用"按鈕跳轉到主頁時,將緩存中的isFirst數據改為1,以后打開應用則不會再進入引導頁面了。

@Overridepublic void onClick(View view) { switch (view.getId()){  case R.id.guide_btn:   setisFirst();   Intent intent= new Intent(GuideActivity.this, MainActivity.class);   startActivity(intent);   finish();   break; }}/** * 改變首次打開的狀態 */private void setisFirst() { SharedPreferences.Editor editor= getSharedPreferences("data", MODE_PRIVATE).edit(); editor.putString("isFirst", "1"); editor.commit();}

看完了這篇文章,相信你對“如何使用Android實現漸變啟動頁和帶有指示器的引導頁”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

鞍山市| 武定县| 象山县| 微山县| 汾阳市| 游戏| 瓮安县| 梁平县| 德兴市| 青岛市| 图片| 大渡口区| 渑池县| 刚察县| 邵武市| 龙州县| 皮山县| 新晃| 金门县| 定远县| 庄浪县| 富蕴县| 临城县| 鄂伦春自治旗| 长宁区| 永康市| 万载县| 车致| 昌都县| 民县| 唐海县| 阜平县| 万宁市| 成安县| 广南县| 罗田县| 涞源县| 天柱县| 柳河县| 嘉鱼县| 中宁县|