亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android項目實戰之高仿網易云音樂啟動頁

標簽:
Android

这一节我们来讲解启动界面,效果如下:

https://img1.sycdn.imooc.com//5d2c75f20001997d04320768.jpg

Screenshot_1529559335.png

首次创建一个SplashActivity用来做启动界面,因为创建完项目默认是MainActivity做主界面,所以需要去掉,将启动配置到同时去掉SplashActivity,并且去掉SplashActivity的标题栏,同时还要设置为全屏。

Activity启动配置

在清单文件将启动配置剪贴到SplashActivity:

<activity
    android:name=".activity.SplashActivity"
    android:screenOrientation="portrait"
    android:theme="@style/NoActionBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter></activity>

布局的话可以说是很简单了,最外层使用RelativeLayout,顶部一个ImageView让他在水平居中,具顶部一个距离,这个距离大家可以按照自己的业务需求调整,然后放入一个TextView让他在水平居中,垂直方向和父布局的底部对齐,同时设置一个Margin,接着放一个ImageView用来显示Logo,让他在TextView的上方就行了:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.ixuea.android.courses.music.activity.SplashActivity">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:scaleType="centerCrop"
        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/splash_bg" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="130dp"
        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/splash_banner" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/tv_copyright"
        android:layout_centerHorizontal="true"
        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/splash_logo" />

    <TextView
        android:id="@+id/tv_copyright"
        style="@style/CopyrightText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:layout_marginTop="10dp"
        android:text="Copyright  2018 Ixuea. All Rights Reserved" /></RelativeLayout>

Activity暂时没什么太多的逻辑,只是创建一个Handler,然后延时3秒钟进行下一步,然后在next方法中判断是否需要显示引导界面,是否登录等:

public class SplashActivity extends BaseCommonActivity {    //这样创建有内存泄漏,在性能优化我们具体讲解
    @SuppressLint("HandlerLeak")    private Handler mHandler = new Handler() {        @SuppressWarnings("unused")        public void handleMessage(Message msg) {
            next();
        }
    };    @Override
    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);        //去除状态栏
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_splash);
    }    @Override
    protected void initDatas() {        super.initDatas();        //延时3秒,在企业中通常会有很多逻辑处理,所以延时时间最好是用3-消耗的的时间
        mHandler.postDelayed(new Runnable() {            @Override
            public void run() {
                mHandler.sendEmptyMessage(-1);
            }
        }, 3000);
    }    private void next() {        if (isShowGuide()) {
            startActivityAfterFinishThis(GuideActivity.class);
        } else if (sp.isLogin()) {
            startActivityAfterFinishThis(MainActivity.class);
        } else {
            startActivityAfterFinishThis(LoginActivity.class);
        }
    }    /**
     * 根据当前版本号判断是否需要引导页
     * @return
     */
    private boolean isShowGuide() {        return sp.getBoolean(String.valueOf(PackageUtil.getVersionCode(getApplicationContext())),true);
    }
}

当前界面还可以增加倒计时,广告等内容,这部分内容我们在后面再讲解。

如果感觉我们写的不错,可以支持我们一下,本项目提供的在线视频教程在线电子书,在官网购买可以优惠5元哟,同时视频课程也可以在网易云课程,腾讯课堂上购买。

有任何问题可以添加我们的QQ来讨论:3469271680;也可以扫描下面的二维码添加Android开发交流群和微信公众号(爱学啊官网底部也有联系方式哟),我们平均每天都会推送一篇优质文章;评论可能回复不是很及时,还望大家体谅;购买课程后可以获得一对一答疑服务,当然也可以谈人生谈理想瞎扯淡;同时如果是零基础想学编程的朋友也可以联系我们进行咨询,我们可以提供一些建议和帮助,让你在编程道路上更顺畅。



作者:爱学啊
链接:https://www.jianshu.com/p/85d4ba4c1947


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消