欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Android開發(fā)技巧之啟動屏和新功能左右導(dǎo)航邏輯代碼詳解

2018-01-31 16:03:17 1822瀏覽

  今天扣丁學(xué)堂小編給大家介紹一下關(guān)于Android技巧之啟動屏+新功能左右導(dǎo)航邏輯詳解,目前相信大家都見過app的一個最常見的特性,就是新功能屬性介紹和啟動屏,一般會怎么實現(xiàn)呢,這不就打算告訴大家了么。

首先判斷是否第一次啟動app,如果是,則進入功能使用導(dǎo)航(最簡單的做法就是,左右滑動切換查看,滑動到最后一頁點擊按鈕進入首頁)。

如果不是,則顯示啟動屏,2秒之后進入首頁。邏輯是很簡單,如果有廣告怎么辦?廣告肯定是從服務(wù)器拿,但會緩存到本地,沒網(wǎng)的時候可以顯示,可以使用webview來顯示廣告,反正筆者是這樣干,具體實現(xiàn)先不說。

看看效果



splashactivity.java

[Java]查看源文件

packagecom.devilwwj.featureguide;

importandroid.app.activity;

importandroid.content.intent;

importandroid.os.bundle;

importandroid.os.handler;

importcom.devilwwj.featureguide.global.appconstants;

importcom.devilwwj.featureguide.utils.sputils;

/**

*@desc啟動屏

*createdbydevilwwjon16/1/23.

*/

publicclasssplashactivityextendsactivity{

@override

protectedvoidoncreate(bundlesavedinstancestate){

super.oncreate(savedinstancestate);

//判斷是否是第一次開啟應(yīng)用

booleanisfirstopen=sputils.getboolean(this,appconstants.first_open);

//如果是第一次啟動,則先進入功能引導(dǎo)頁

if(!isfirstopen){

intentintent=newintent(this,welcomeguideactivity.class);

startactivity(intent);

finish();

return;

}

//如果不是第一次啟動app,則正常顯示啟動屏

setcontentview(r.layout.activity_splash);

newhandler().postdelayed(newrunnable(){

@override

publicvoidrun(){

enterhomeactivity();

}

},2000);

}

privatevoidenterhomeactivity(){

intentintent=newintent(this,mainactivity.class);

startactivity(intent);

finish();

}

}

代碼解析:使用sharedpreference來保存app啟動狀態(tài),如果為true,則進入功能導(dǎo)航,否則延遲2秒之后進入主頁面。

welcomeguideactivity.java

packagecom.devilwwj.featureguide;

importandroid.app.activity;

importandroid.content.intent;

importandroid.os.bundle;

importandroid.support.v4.view.viewpager;

importandroid.support.v4.view.viewpager.onpagechangelistener;

importandroid.view.layoutinflater;

importandroid.view.view;

importandroid.view.view.onclicklistener;

importandroid.widget.button;

importandroid.widget.imageview;

importandroid.widget.linearlayout;

importcom.devilwwj.featureguide.global.appconstants;

importcom.devilwwj.featureguide.utils.sputils;

importjava.util.arraylist;

importjava.util.list;

/**

*歡迎頁

*

*@authorwwj_748

*

*/

publicclasswelcomeguideactivityextendsactivityimplementsonclicklistener{

privateviewpagervp;

privateguideviewpageradapteradapter;

privatelistviews;

privatebuttonstartbtn;

//引導(dǎo)頁圖片資源

privatestaticfinalint[]pics={r.layout.guid_view1,

r.layout.guid_view2,r.layout.guid_view3,r.layout.guid_view4};

//底部小點圖片

privateimageview[]dots;

//記錄當(dāng)前選中位置

privateintcurrentindex;

@override

protectedvoidoncreate(bundlesavedinstancestate){

super.oncreate(savedinstancestate);

setcontentview(r.layout.activity_guide);

views=newarraylist();

//初始化引導(dǎo)頁視圖列表

for(inti=0;i<pics.length;i++){

viewview=layoutinflater.from(this).inflate(pics[i],null);

if(i==pics.length-1){

startbtn=(button)view.findviewbyid(r.id.btn_login);

startbtn.settag("enter");

startbtn.setonclicklistener(this);

}

views.add(view);

}

vp=(viewpager)findviewbyid(r.id.vp_guide);

//初始化adapter

adapter=newguideviewpageradapter(views);

vp.setadapter(adapter);

vp.setonpagechangelistener(newpagechangelistener());

initdots();

}

@override

protectedvoidonresume(){

super.onresume();

}

@override

protectedvoidonpause(){

super.onpause();

//如果切換到后臺,就設(shè)置下次不進入功能引導(dǎo)頁

sputils.putboolean(welcomeguideactivity.this,appconstants.first_open,true);

finish();

}

@override

protectedvoidonstop(){

super.onstop();

}

@override

protectedvoidondestroy(){

super.ondestroy();

}

privatevoidinitdots(){

linearlayoutll=(linearlayout)findviewbyid(r.id.ll);

dots=newimageview[pics.length];

//循環(huán)取得小點圖片

for(inti=0;i<pics.length;i++){

//得到一個linearlayout下面的每一個子元素

dots[i]=(imageview)ll.getchildat(i);

dots[i].setenabled(false);//都設(shè)為灰色

dots[i].setonclicklistener(this);

dots[i].settag(i);//設(shè)置位置tag,方便取出與當(dāng)前位置對應(yīng)

}

currentindex=0;

dots[currentindex].setenabled(true);//設(shè)置為白色,即選中狀態(tài)

}

/**

*設(shè)置當(dāng)前view

*

*@paramposition

*/

privatevoidsetcurview(intposition){

if(position<0||position>=pics.length){

return;

}

vp.setcurrentitem(position);

}

/**

*設(shè)置當(dāng)前指示點

*

*@paramposition

*/

privatevoidsetcurdot(intposition){

if(position<0||position>pics.length||currentindex==position){

return;

}

dots[position].setenabled(true);

dots[currentindex].setenabled(false);

currentindex=position;

}

@override

publicvoidonclick(viewv){

if(v.gettag().equals("enter")){

entermainactivity();

return;

}

intposition=(integer)v.gettag();

setcurview(position);

setcurdot(position);

}

privatevoidentermainactivity(){

intentintent=newintent(welcomeguideactivity.this,

splashactivity.class);

startactivity(intent);

sputils.putboolean(welcomeguideactivity.this,appconstants.first_open,true);

finish();

}

privateclasspagechangelistenerimplementsonpagechangelistener{

//當(dāng)滑動狀態(tài)改變時調(diào)用

@override

publicvoidonpagescrollstatechanged(intposition){

//arg0==1的時辰默示正在滑動,arg0==2的時辰默示滑動完畢了,arg0==0的時辰默示什么都沒做。

}

//當(dāng)前頁面被滑動時調(diào)用

@override

publicvoidonpagescrolled(intposition,floatarg1,intarg2){

//arg0:當(dāng)前頁面,及你點擊滑動的頁面

//arg1:當(dāng)前頁面偏移的百分比

//arg2:當(dāng)前頁面偏移的像素位置

}

//當(dāng)新的頁面被選中時調(diào)用

@override

publicvoidonpageselected(intposition){

//設(shè)置底部小點選中狀態(tài)

setcurdot(position);

}

}

}

代碼解析:左右滑動是使用viewpager來做的,切換4個不同的view,監(jiān)聽viewpager的頁面切換事件來更改底部指示點的切換,滑動到最后一個頁面,設(shè)置按鈕的點擊事件,點擊進入首頁。

最后想向大家強調(diào)一點,學(xué)編程基礎(chǔ)一定要打牢,所有的概念和知識點必須理解透徹,解更多請關(guān)注扣丁學(xué)堂Android培訓(xùn)官網(wǎng)、微信公眾號平臺,扣丁學(xué)堂Android視頻教程從零基礎(chǔ)到精通免費試聽試學(xué),就業(yè)終端服務(wù)系統(tǒng)隨時監(jiān)控學(xué)員的學(xué)習(xí)情況和效果,順利畢業(yè)后根據(jù)學(xué)員自身風(fēng)格和學(xué)習(xí)效果推薦就業(yè)。如果你想要學(xué)習(xí)Android開發(fā)工程師技術(shù)就不要再猶豫了,喜歡就付諸行動吧。



扣丁學(xué)堂微信公眾號



【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】



查看更多關(guān)于“Android開發(fā)技術(shù)的相關(guān)資訊>>

標(biāo)簽: Android開發(fā)從入門到精通 Android學(xué)習(xí)路線圖 Android培訓(xùn) Android開發(fā)工程師 Android視頻教程

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部