600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android项目实战之高仿网易云音乐启动界面

Android项目实战之高仿网易云音乐启动界面

时间:2021-09-12 01:50:31

相关推荐

Android项目实战之高仿网易云音乐启动界面

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

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

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

<activityandroid: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="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.ixuea.android.courses.music.activity.SplashActivity"><ImageViewandroid: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:src="@drawable/splash_bg" /><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:layout_marginTop="130dp"android:src="@drawable/splash_banner" /><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@+id/tv_copyright"android:layout_centerHorizontal="true"android:src="@drawable/splash_logo" /><TextViewandroid: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 © 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();}};@Overrideprotected 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);}@Overrideprotected void initDatas() {super.initDatas();//延时3秒,在企业中通常会有很多逻辑处理,所以延时时间最好是用3-消耗的的时间mHandler.postDelayed(new Runnable() {@Overridepublic 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;评论可能回复不是很及时,还望大家体谅;购买课程后可以获得一对一答疑服务,当然也可以谈人生谈理想瞎扯淡;同时如果是零基础想学编程的朋友也可以联系我们进行咨询,我们可以提供一些建议和帮助,让你在编程道路上更顺畅。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。