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

首頁 > 系統 > Android > 正文

Android客戶端首次啟動引導界面

2019-10-21 21:46:42
字體:
來源:轉載
供稿:網友

剛做完一個比賽項目,來寫點以后能用著的東西–Android客戶端的首次啟動頁面,而且這個以后復用的幾率很大,也不怎么修改,特留下為以后準備,同時為初學者提供一個幫助。

實現思路是:用SharedPreferences保存一個首次登陸的信息,默認是true,進入MainActivity后對其經行賦flase保存,把GuideActivity作為軟件的啟動界面,如果是第一次啟動,就初始化該activity,不是的話直接跳轉到應用主界面activity,這里有些不合理,啟動界面如果設置成一個每次app啟動都顯示的界面最好了,這不是重點,我也就沒實現。 

首先使用viewpager實現 

首先是引導頁的布局文件:直接加入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:orientation="vertical" >  <android.support.v4.view.ViewPager    android:id="@+id/viewpager"    android:layout_width="match_parent"    android:layout_height="match_parent" />  <LinearLayout    android:id="@+id/ll"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignParentBottom="true"    android:layout_centerHorizontal="true"    android:layout_marginBottom="24.0dp"    android:orientation="horizontal" >    <ImageView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center_vertical"      android:clickable="true"      android:padding="15.0dip"      android:src="@drawable/dot" />    <ImageView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center_vertical"      android:clickable="true"      android:padding="15.0dip"      android:src="@drawable/dot" />    <ImageView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center_vertical"      android:clickable="true"      android:padding="15.0dip"      android:src="@drawable/dot" />    <ImageView      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center_vertical"      android:clickable="true"      android:padding="15.0dip"      android:src="@drawable/dot" />  </LinearLayout></RelativeLayout>

這個是引導界面的activity代碼

 

package com.example.yasin.ndklearn;import android.content.Intent;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.RelativeLayout;/** * * @{# GuideActivity.java Create on 2013-5-2 下午10:59:08 * *   class desc: 引導界面 * *   <p> *   Copyright: Copyright(c) 2013 *   </p> * @Version 1.0 * @Author <a href="mailto:gaolei_xj@163.com">Leo</a> * * */public class GuideActivity extends AppCompatActivity implements OnPageChangeListener {  private ViewPager vp;  private ViewPagerAdapter vpAdapter;  private List<View> views;  // 底部小點圖片  private ImageView[] dots;  // 記錄當前選中位置  private int currentIndex;  Boolean isFirst;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.guide_layout);    // 初始化頁面    initViews();    // 初始化底部小點    initDots();  }  private void initViews() {    SharedPreferences pref = getSharedPreferences("first",Activity.MODE_PRIVATE);    isFirst = pref.getBoolean("status",true);    if(!isFirst){      Intent intent = new Intent(this,MainActivity.class);      startActivity(intent);      finish();    }    LayoutInflater inflater = LayoutInflater.from(this);    RelativeLayout guideFour = (RelativeLayout) inflater.inflate(R.layout.guide_four, null);    guideFour.findViewById(R.id.toMain).setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        Intent intent = new Intent(GuideActivity.this,MainActivity.class);        startActivity(intent);        finish();      }    });    views = new ArrayList<View>();    // 初始化引導圖片列表    views.add(inflater.inflate(R.layout.guide_one, null));    views.add(inflater.inflate(R.layout.guide_two, null));    views.add(inflater.inflate(R.layout.guide_three, null));    views.add(guideFour);    // 初始化Adapter    vpAdapter = new ViewPagerAdapter(views, this);    vp = (ViewPager) findViewById(R.id.viewpager);    vp.setAdapter(vpAdapter);    // 綁定回調    vp.setOnPageChangeListener(this);  }  private void initDots() {    LinearLayout ll = (LinearLayout) findViewById(R.id.ll);    dots = new ImageView[views.size()];    // 循環取得小點圖片    for (int i = 0; i < views.size(); i++) {      dots[i] = (ImageView) ll.getChildAt(i);      dots[i].setEnabled(true);// 都設為灰色    }    currentIndex = 0;    dots[currentIndex].setEnabled(false);// 設置為白色,即選中狀態  }  private void setCurrentDot(int position) {    if (position < 0 || position > views.size() - 1        || currentIndex == position) {      return;    }    dots[position].setEnabled(false);    dots[currentIndex].setEnabled(true);    currentIndex = position;  }  // 當滑動狀態改變時調用  @Override  public void onPageScrollStateChanged(int arg0) {  }  // 當當前頁面被滑動時調用  @Override  public void onPageScrolled(int arg0, float arg1, int arg2) {  }  // 當新的頁面被選中時調用  @Override  public void onPageSelected(int arg0) {    // 設置底部小點選中狀態    setCurrentDot(arg0);  }}

ViewPager中要實現一個ViewpagerAdapter類,對其進行頁面的設置

 

package com.example.yasin.ndklearn;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.os.Parcelable;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import java.util.List;/** * Created by Yasin on 2016/3/2. * * * @{# ViewPagerAdapter.java Create on 2013-5-2 下午11:03:39 * *   class desc: 引導頁面適配器 * *   <p> *   Copyright: Copyright(c) 2013 *   </p> * @Version 1.0 * @Author <a href="mailto:gaolei_xj@163.com">Leo</a> * * */public class ViewPagerAdapter extends PagerAdapter {  // 界面列表  private List<View> views;  private AppCompatActivity activity;  public ViewPagerAdapter(List<View> views, AppCompatActivity activity) {    this.views = views;    this.activity = activity;  }  //加載viewpager的每個item  @Override  public Object instantiateItem(ViewGroup container, int position) {    container.addView(views.get(position),0);    return views.get(position);  }//刪除ViewPager的item  @Override  public void destroyItem(ViewGroup container, int position, Object object) {    // super.destroyItem(container, position, object);    container.removeView(views.get(position));  }  // 獲得當前界面數  @Override  public int getCount() {    if (views != null) {      return views.size();    }    return 0;  }//官方推薦這么寫,沒研究。。。。  @Override  public boolean isViewFromObject(View view, Object object) {    return view == object;  }}

效果圖 

Android,客戶端,引導界面

代碼下載地址:Android客戶端啟動引導界面

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保德县| 深泽县| 高安市| 凤台县| 大厂| 新余市| 白城市| 稷山县| 新巴尔虎左旗| 子洲县| 栾川县| 乌拉特前旗| 星座| 琼结县| 开江县| 赤壁市| 石林| 田东县| 肥东县| 磴口县| 高州市| 灯塔市| 固镇县| 商水县| 五原县| 卢龙县| 手游| 灯塔市| 丽江市| 高淳县| 萨迦县| 新巴尔虎左旗| 雅安市| 襄城县| 黄大仙区| 卓尼县| 朝阳市| 芦溪县| 休宁县| 西乌珠穆沁旗| 恩平市|