android studio 歡迎頁和引導頁


 

這是我第一次接觸到android學習,現在模仿拉手網的welcomeactivity

activity_welcome.xml 

<resources>

<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="indicator_right_padding">10dp</dimen>
<dimen name="indicator_corner_radius">12dp</dimen>
<dimen name="indicator_internal_padding">4dp</dimen>
<dimen name="header_footer_left_right_padding">24dp</dimen>
<dimen name="header_footer_top_bottom_padding">12dp</dimen>

</resources>

welcomeactivity.java

package com.lzh.lashou;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

import android.support.annotation.Nullable;

public class WelcomeActivity extends Activity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) { //注意新版本中onCreate的方法兩個參數去掉后面的參數,否則調試后會出現空白頁
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
    //3s后進入mainactivity
new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message message) {
startActivity(new Intent(WelcomeActivity.this,MainActivity.class));
return true;
}
}).sendEmptyMessageDelayed(0,3000);/*延遲3s*/

}

}

所有的頁面都要在
mainifest中注冊

//設置起始頁為歡迎頁面
<activity android:name=".welcomeactivity" />
<activity android:name=".mainactivity"/>



 


出現的問題,大部分就是調試后出現空白頁,解決方法為重載onCreate()方法傳參時只傳遞第一個,后一個參數刪除。

下面開始進入引導頁
創建yindaoactivity.java + activity_yindao.xml 同時別忘了在manifest.xml中注冊,為了判斷用戶是否為第一次進入頁面,所以在項目中添加util.ToolKits(工具類)
public class ToolKits{
   
  public static SharedPerferences getSharedPerferences(Context context){
    return context.getSharesPerferences("包名",Context.MODE_PRIVATE)//設計為私有模式
  }
  //設置共享參數
  public static void putBoolean(Context context,String key,boolean value){
    SharedPerferences sharedPerferences=getSharedPerferences(context);
    //獲取共享參數的編輯器
    SharedPerferences.Editor editor=sharedPerences.edit();
    //通過編輯器提交一個boolean類型的參數
    editor.putBoolean(key,value);
    editor.commit();  
  }
  
  
//獲取共享參數
public static boolean GetBoolean(Context context,String key,boolean defaultValue){
return getSharedPreferences(context).getBoolean(key,defaultValue);
}
}
在welcome中添加判斷,調用ToolKits
public class WelcomeActivity extends Activity {

public static final String IS_FIRST="is_first";

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message message) {
if(ToolKits.GetBoolean(WelcomeActivity.this,IS_FIRST,false))
{
//如果默認值為false,則沒有登陸過,跳轉到引導頁
startActivity(new Intent(WelcomeActivity.this,yindaoactivity.class));
//將boolean值設置為true
ToolKits.PutBoolean(WelcomeActivity.this,IS_FIRST,true);
}else{
//否則跳轉為主頁
startActivity(new Intent(WelcomeActivity.this,MainActivity.class));
}
ToolKits.PutBoolean(WelcomeActivity.this,IS_FIRST,true);
return true;
}
}).sendEmptyMessageDelayed(0,3000);/*延遲3s*/

}
新建一個視配器
//視配器
public class GuideAdapter extends PagerAdapter {

private List<View> mList;

public GuideAdapter(List<View> list){
mList=list;
}

@Override
public int getCount() {
return mList.size();
}

@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view==object;
}

@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
((ViewPager)container).removeView(mList.get(position));//將指定位置的view去掉
}

//重寫初始化,將圖片添加到指定位置
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
((ViewPager)container).addView(mList.get(position));
return mList.get(position);
}
}



修改引導頁
public class yindaoactivity extends Activity {

private ViewPager pager;
private Button btnstart;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_yindao);
pager=(ViewPager)findViewById(R.id.view_pager);
btnstart=(Button) findViewById(R.id.start_btn);
//為button添加監聽事件,點擊后切換到主界面
btnstart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(yindaoactivity.this,MainActivity.class));
}
});
//初始化ViewPage中的3張圖片
initViewPate();
}

private void initViewPate(){
//List存放3張圖片
List<View> list=new ArrayList<View>();
ImageView img1=new ImageView(this);
//設置這幾張圖片的源
img1.setImageResource(R.drawable.guide_1);
list.add(img1);
ImageView img2=new ImageView(this);
img2.setImageResource(R.drawable.guide_2);
list.add(img2);
ImageView img3=new ImageView(this);
img3.setImageResource(R.drawable.guide_3);
list.add(img3);

GuideAdapter myAdapter=new GuideAdapter(list);
pager.setAdapter(myAdapter);

//前兩張沒有"立即體驗"的按鈕,等到第三張才有
//設置pager的監聽器
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
//如果是第三張圖片,顯示btn
if(position==2)btnstart.setVisibility(View.VISIBLE);
else btnstart.setVisibility(View.GONE);
}

@Override
public void onPageScrollStateChanged(int state) {

}
});


}
}
對於以上使用的圖片素材,可以通過反編譯killer獲取

 

 














免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM