【关键词】

闪屏切换界面

【问题】
  • 从 launcher 中进入应用的时候,开始有一瞬间的空白,而不是直接展示背景;
【分析】
  • 在绘制界面的时候,Android会先画背景,接着绘制其他区域(这个背景和 theme 有关);
【解决方案】
  • 直接修改 theme 中的背景为 activity 的背景;
  • 在主题中,将android:windowBackground属性直接指定为自己想要的背景色或背景图;
【代码】

在styles.xml中添加

                         <style name="MyTheme" parent="AppTheme">                      <item name="android:windowNoTitle">true</item>                      <item name="android:windowBackground">@android:color/holo_purple</item>                     </style>            

修改Manifest

                         <activity                      android:theme="@style/MyTheme"                      android:name=".FirstActivity"                      android:label="@string/app_name1" >                      <intent-filter>                      <action android:name="android.intent.action.MAIN" />                      <category android:name="android.intent.category.LAUNCHER" />                      </intent-filter>                     </activity>                                          <activity                      android:theme="@style/MyTheme"                      android:name=".SecondActivity" >                     </activity>            
【扩展】

如果是设置只包含一张图片的欢迎界面,那就更简单了

  • 在 Mainfest 中指定欢迎界面 activity的时候设置 theme为一个包含此图片的style,引用此 theme 即可:

                                               <style name="MyTheme" parent="AppTheme">                                  <item name="android:windowNoTitle">true</item>                                  <item name="android:windowBackground">@drawable/bg</item>                                 </style>                      
  • 接着,欢迎界面的 activity 只需要处理跳转到主界面的逻辑即可,而不需要处理视图(即不用设置setContentView(););

                                               public class WelcomeActivity extends Activity {                                                                   private Handler mHandler = new Handler();                                  @Override                                  protected void onCreate(Bundle savedInstanceState) {                                  // 2秒后跳转到主界面                                  mHandler.postDelayed(toMainActivityRunnable(), 2000);                                  super.onCreate(savedInstanceState);                                  }                                                                   private Runnable toMainActivityRunnable() {                                  return new Runnable() {                                  @Override                                  public void run() {                                  Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);                                  // 退出程序的时候不在经过欢迎界面                                  startActivityForResult(intent, 0);                                  }                                  };                                  }                                                                   // 展示欢迎界面的时候,不允许其他操作(例如按返回键退出)                                  @Override                                  public boolean onKeyDown(int keyCode, KeyEvent event) {                                  return false;                                  }                                                                   @Override                                  protected void onActivityResult(int requestCode, int resultCode, Intent data) {                                  if(requestCode == 0){                                  finish();                                  }                                  super.onActivityResult(requestCode, resultCode, data);                                  }                                 }                      

更多相关文章

  1. Android的界面设计规范
  2. Android(安卓)Tv 背景动态改变,带过渡效果
  3. 由 Sense 4.0 说开去: Android(安卓)第三方定制界面还有必要吗?
  4. Android(安卓)实用工具Hierarchy Viewer实战
  5. 定制android设备启动后进入的初始界面
  6. Android(安卓)4.0 界面
  7. android可拉伸图片处理(.9.png)格式的图片
  8. Android界面编程——Android基本控件
  9. android设置Activity背景色为透明的3种方

随机推荐

  1. Android studio 启动出现错误AAPT: error
  2. Android 复习笔记之图解BroadcastReceive
  3. android aidl进程间通信
  4. android 获取应用程序占用的内存大小
  5. Android 杂记
  6. Java建造者模式,Android建造者模式的Alert
  7. Android中的ClassLoader与dex文件加密实
  8. Android高手进阶教程(十七)之---Android
  9. android 跳转到应用通知设置界面
  10. Android(安卓)处理空列表的方法(必看篇)