【关键词】

闪屏 切换界面

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

【代码】

在styles.xml中添加

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

修改Manifest

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

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

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

                       name="MyTheme" parent="AppTheme">                     name="android:windowNoTitle">true                     name="android:windowBackground">@drawable/bg                               
  • 接着,欢迎界面的 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(安卓)Activity界面切换添加动画特效
  2. Android(安卓)拨号器的简单实现
  3. android用户界面之按钮(Button)教程实例汇
  4. 锁屏界面
  5. android用户界面-组件Widget-地图视图MapView
  6. android用户界面-组件Widget-画廊视图Gallery
  7. Android调用.NET Webservice报org.ksoap2.serialization.SoapPri
  8. Android中使Dialog显示时背景不变暗
  9. Android(安卓)Activity界面切换添加动画特效

随机推荐

  1. Mysql实现简易版搜索引擎的示例代码
  2. 详细聊聊MySQL中慢SQL优化的方向
  3. MySQL8.0的WITH查询详情
  4. Prometheus 监控MySQL使用grafana展示
  5. MySQL命令无法输入中文问题的解决方式
  6. 当面试官问mysql中char与varchar的区别
  7. mysql 索引合并的使用
  8. 一文带你了解Mysql主从同步原理
  9. 基于Redo Log和Undo Log的MySQL崩溃恢复
  10. MySQL 到底是如何做到多版本并发的