做安卓开发的时候,如果按顺序来说,首先需要做的是设置app的名字、app的图标和启动页。
1.app名字的设置
名字的设置非常简单,一般工程创建后,app默认的名字是工程的名字,只要在res-values-strings.xml中修改app_name后面的值即可,如:
<string name="app_name">我的安卓</string>
2.app图标的设置
app图标的设置与iOS类似,需要将图标放到相应的资源文件夹下即可,安卓图标有5种尺寸、2个规格和1个特别情况。
5种尺寸为:48×48、72×72、96×96、144×144、192×192;
2种规格为:圆形、方形带圆角;
1个特别情况是:Android 8.0以上需要前景层和背景层设置;
设置app图标的操作:
1.需要问UI要两种规格的app图标:圆形和方形带圆角,尺寸可以要最大的192×192,然后自己再分别压缩图片尺寸拿到其他四种较小尺寸的图片;
2.将方形带圆角的图片统一命名为:ic_launcher.png、圆形图片统一命名为ic_launcher_round.png;注意命名中不能有大写字母,否则会报错(搞不懂是为什么);当然图片名称也可以自己命名成其他的名称,但需要到配置文件中进行修改;
3.在res下,有mipmap-hdpi、mipmap-mdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi这五个文件夹;在这五个文件夹中分别放入:72×72、48×48、96×96、144×144、192×192五种规格的图片;特别注意,hdpi文件夹中应放入72×72的图标。
4.Android8.0以上的图标适配,具体可以参考https://blog.csdn.net/CheacK66/article/details/81541632 这篇博客,说的很清楚。
3.app启动页的设置
Android下的启动页,设置要比iOS的更为复杂,iOS的机型不多,所以只需要将各自尺寸的启动图拖到对应的机型中即可,但Android的机型太多了,所以需要自己创建一个activity,在这个activity中添加铺满全屏的启动图片。
具体操作为:
1.创建一个启动页activity,这里命名为BYStartupActivity;
2.在res-value-styles.xml中设置启动页的样式,防止出现点击图标启动-短暂白屏或黑屏-显示启动页这个问题。
<!--应用启动页的样式设置:防止出现白屏-->
<style name="ThemeSplash" parent="Theme.AppCompat.Light.NoActionBar">
<!--startup_ic是启动页的背景图片-->
<item name="android:background">@drawable/startup_ic</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<item name="windowActionBar">false</item>
<!--隐藏状态栏的-->
<item name="windowNoTitle">true</item>
</style>
3.在配置文件中,将第一个activity改为启动页BYStartupActivity
<activity android:name=".MainActivity" />
<!--设置启动页的theme样式,防止出现白屏-->
<activity android:name=".BYStartupActivity" android:theme="@style/ThemeSplash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
4.在启动页BYStartupActivity中处理一些其他任务(比如网络请求或广告)然后跳转到MainActivity
public class BYStartupActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在onCreate之后、setContentView之前会出现短暂的白屏或黑屏,这是因为页面的窗体绘制优先于资源加载了,
//解决方法是在配置文件中,引入theme,在styles中设置启动页的样式:style name="ThemeSplash",这里不再加载contentView
// setContentView(R.layout.activity_bystartup);
//加载启动页
initRequestStartUpView();
}
private void initRequestStartUpView(){//并加载网络请求
new Thread(new Runnable() {//开启子线程
@Override
public void run() {
//在子线程中执行一个耗时任务,比如加载网络请求
runOnUiThread(new Runnable(){//回到主线程更新UI
@Override
public void run() {
Intent intent = new Intent(BYStartupActivity.this, MainActivity.class);//从当前Activity跳转至首页的MainActivity
startActivity(intent);//开启一个新意图
BYStartupActivity.this.finish();//关闭当前的Activity
}
});
}
}).start();//启动子线程
}
网友评论