Android 개발 의 splash 인터페이스 에서 상세 한 설명 및 인 스 턴 스

현재 다운로드 한 많은 앱 들 이 처음 열 리 면 메 인 화면 에 들 어가 기 전에 네 비게 이 션 페이지 가 있어 서 회사 로 고 를 보 여주 거나 자신의 앱 을 홍보 한다.선행 효과 도:
这里写图片描述
这里写图片描述
这里写图片描述
먼저 설명 하 겠 습 니 다.첫 페이지 에 들 어가 면 오른쪽으로 만 미 끄 러 질 수 있 고 중간 에 좌우 로 미 끄 러 질 수 있 습 니 다.마지막 장 은 앞으로 만 미 끄 러 질 수 있 습 니 다.클릭 하면 바로 체험 하면 메 인 화면 에 들 어 갈 수 있 고 건 너 뛰 기 를 클릭 하면 메 인 화면 에 들 어 갈 수 있 습 니 다.다음은 코드.
1,app/build.gradle 의 패키지 에 추가:

compile 'cn.bingoogolapple:bga-banner:2.1.6@aar'
compile 'com.android.support:support-v4:24.1.0'
2,레이아웃 파일:activitysplash.xml。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/activity_splash"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.gyq.cloudreader.SplashActivity">

  <cn.bingoogolapple.bgabanner.BGAGuideLinkageLayout style="@style/MatchMatch">

    <cn.bingoogolapple.bgabanner.BGABanner
      android:id="@+id/banner_guide_background"
      style="@style/MatchMatch"
      app:banner_pageChangeDuration="1000"
      app:banner_pointAutoPlayAble="false"
      app:banner_pointContainerBackground="@android:color/transparent"
      app:banner_pointDrawable="@drawable/bga_banner_selector_point_hollow"
      app:banner_pointTopBottomMargin="15dp"
      app:banner_transitionEffect="fade"/>

    <cn.bingoogolapple.bgabanner.BGABanner
      android:id="@+id/banner_guide_foreground"
      style="@style/MatchMatch"
      app:banner_pageChangeDuration="1000"
      app:banner_pointAutoPlayAble="false"
      app:banner_pointContainerBackground="@android:color/transparent"
      app:banner_pointDrawable="@drawable/bga_banner_selector_point_hollow"
      app:banner_pointTopBottomMargin="15dp"
      app:banner_transitionEffect="alpha"/>
  </cn.bingoogolapple.bgabanner.BGAGuideLinkageLayout>

  <TextView
    android:id="@+id/tv_guide_skip"
    style="@style/WrapWrap"
    android:layout_alignParentRight="true"
    android:layout_marginRight="8dp"
    android:layout_marginTop="8dp"
    android:clickable="true"
    android:padding="4dp"
    android:text="   >"
    android:textColor="@android:color/white"
    android:textSize="16sp"/>

  <Button
    android:id="@+id/btn_guide_enter"
    style="@style/WrapWrap"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="60dp"
    android:background="@drawable/selector_btn_test"
    android:padding="10dp"
    android:text="    "
    android:textColor="@android:color/white"
    android:textSize="20sp"
    android:visibility="gone"
    tools:visibility="visible"/>

</RelativeLayout>
3,논리 코드,SplashActivity.java

package com.gyq.cloudreader;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import cn.bingoogolapple.bgabanner.BGABanner;

/**
 *     
 */
public class SplashActivity extends AppCompatActivity {
  private BGABanner mBackgroundBanner;
  private BGABanner mForegroundBanner;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    initView();

    initListener();

    processLogic();

  }

  private void initView() {
    mBackgroundBanner = (BGABanner)findViewById(R.id.banner_guide_background);
    mForegroundBanner = (BGABanner)findViewById(R.id.banner_guide_foreground);
  }

  private void initListener() {
    mForegroundBanner.setEnterSkipViewIdAndDelegate(R.id.btn_guide_enter, R.id.tv_guide_skip, new BGABanner.GuideDelegate() {
      @Override
      public void onClickEnterOrSkip() {
        startActivity(new Intent(SplashActivity.this, MainActivity.class));
        finish();
      }
    });

  }

  private void processLogic() {
    //     
    mBackgroundBanner.setData(R.drawable.uoko_guide_background_1,R.drawable.uoko_guide_background_2,R.drawable.uoko_guide_background_3);
    mForegroundBanner.setData(R.drawable.uoko_guide_foreground_1,R.drawable.uoko_guide_foreground_2,R.drawable.uoko_guide_foreground_3);
  }

  @Override
  protected void onResume() {
    super.onResume();

    //                ,            Banner         ,          Banner            Launcher
    mBackgroundBanner.setBackgroundResource(android.R.color.white);
  }
}
소결:예전 에 이런 안내 페이지 를 썼 던 것 을 기억 하 세 요.자신 이 한참 동안 손 으로 써 야 했 는데 지금 은 개원 이 있 습 니 다!위의 코드 를 보면 알 것 같 습 니 다.근 데 디 테 일이 좀 있어 서 요.
1.레이아웃 파일 의 style="@style/WrapWrap",values 폴 더 아래 에 styles 를 새로 만들어 야 합 니 다.base.xml。

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

  <style name="WrapMatch">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">match_parent</item>
  </style>

  <style name="MatchWrap">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
  </style>

  <style name="WrapWrap">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
  </style>

  <style name="MatchMatch">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">match_parent</item>
  </style>

  <style name="MatchAuto">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_weight">1</item>
    <item name="android:layout_height">0dp</item>
  </style>

  <style name="AutoMatch">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_weight">1</item>
    <item name="android:layout_height">match_parent</item>
  </style>

  <style name="WrapAuto">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_weight">1</item>
    <item name="android:layout_height">0dp</item>
  </style>

  <style name="AutoWrap">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_weight">1</item>
    <item name="android:layout_height">wrap_content</item>
  </style>

  <style name="WrapMatch.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="WrapMatch.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="MatchWrap.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="MatchWrap.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="WrapWrap.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="WrapWrap.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="MatchMatch.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="MatchMatch.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="MatchAuto.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="MatchAuto.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="AutoMatch.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="AutoMatch.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="WrapAuto.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="WrapAuto.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="AutoWrap.Vertical">
    <item name="android:orientation">vertical</item>
  </style>

  <style name="AutoWrap.Horizontal">
    <item name="android:orientation">horizontal</item>
  </style>

  <style name="MatchOne">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">1px</item>
  </style>

  <style name="OneMatch">
    <item name="android:layout_width">1px</item>
    <item name="android:layout_height">match_parent</item>
  </style>
</resources>
그리고 styles.xml 파일 에 다음 코드 를 추가 하면 전체 화면 에 표시 할 수 있 습 니 다.

<resources>

  <!-- Base application theme. -->
  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
  </style>

  <!--            -->
  <style name="AppTheme.Splash">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
  </style>

</resources>
마지막 목록 파일,SplashActivity 를 등록 하 는 것 은 다음 과 같은 코드 를 쓰 는 것 입 니 다.

<activity android:name=".SplashActivity"
      android:label="@string/app_name"
      android:screenOrientation="portrait"
      android:theme="@style/AppTheme.Splash">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기