小編給大家分享一下如何使用Android實現(xiàn)漸變啟動頁和帶有指示器的引導(dǎo)頁,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、網(wǎng)站設(shè)計與策劃設(shè)計,婁煩網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:婁煩等地區(qū)。婁煩做網(wǎng)站價格咨詢:13518219792
實現(xiàn)步驟:
1.首先我們做個有漸變動畫的啟動頁面SplashActivity
在onCreate里設(shè)置核心方法setAlphaAnimation()
public void setAlphaAnimation(){ //生成AlphaAnimation的對象 AlphaAnimation animation= new AlphaAnimation(this); //設(shè)置動畫的持續(xù)時間 animation.setDuration(3000); //給要漸變的控件設(shè)置動畫,比如說imageview,textview,linearLayout之類的 ll.setAnimation(animation); //設(shè)置動畫監(jiān)聽,結(jié)束時跳轉(zhuǎn)到下一個頁面(首次打開就是引導(dǎo)頁面,反之就是主頁) animation.setAnimationListener(new Animation.AnimationListener(){ public void onAnimationStart(Animation animation){ } public void onAnimationEnd(Animation animation){ jump2Activity(); } public void onAnimationRepeat(Animation animation){ } });}
分析一下這個跳轉(zhuǎn)方法jump2Activity(),我們這里使用SharedPeference來判斷應(yīng)用是否首次打開,設(shè)變量isFirst默認值為0,進入引導(dǎo)頁跳轉(zhuǎn)到主頁時再把這個值設(shè)為1,這樣,每次跳轉(zhuǎn)時判斷isFirst的值,如果仍是默認值0則為首次打開進入引導(dǎo)頁,反之進入主頁。
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.接下來我們做引導(dǎo)頁面
引導(dǎo)頁面是由三個控件組成,Viewpager,圓點指示器的線性布局linearlayout,最后一頁的 “進入應(yīng)用”按鈕。
在GuideActivity中,首先初始化引導(dǎo)圖片
/** * 初始化圖片 */private void initImgs() { ViewPager.LayoutParams params= new ViewPager.LayoutParams(); imageViews= new ArrayList
初始化底部圓點指示器,這里值得一提的是我們給各圓點設(shè)置相應(yīng)的點擊事件,當點擊某個位置的圓點時,viewpager自動切換到相應(yīng)位置的圖片,不過實際應(yīng)用中這里實用性不是很大,因為圓點太小,可觸摸范圍有限,點擊事件不太好觸發(fā)。
/** * 初始化底部圓點指示器 */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); }}
設(shè)置viewpager的滑動事件
vp.addOnPageChangeListener(this);
生成三個方法,我們主要在onPageSelected()方法中做操作,當某個位置的圓點被選中時,顯示選中后的圖片,其余圓點顯示未選中的圖片,這里主要應(yīng)用selector控制器,至于相應(yīng)的選中未選中圓點圖片需要大家去找。當滑動到最后一個頁面時,將 "進入應(yīng)用"的按鈕顯示,反之隱藏。
@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
在最后一個頁面點擊 "進入應(yīng)用"按鈕跳轉(zhuǎn)到主頁時,將緩存中的isFirst數(shù)據(jù)改為1,以后打開應(yīng)用則不會再進入引導(dǎo)頁面了。
@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; }}/** * 改變首次打開的狀態(tài) */private void setisFirst() { SharedPreferences.Editor editor= getSharedPreferences("data", MODE_PRIVATE).edit(); editor.putString("isFirst", "1"); editor.commit();}
看完了這篇文章,相信你對“如何使用Android實現(xiàn)漸變啟動頁和帶有指示器的引導(dǎo)頁”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!