文档章节

Android Activity之间跳转出现短暂黑屏的处理方法

今日竹石
 今日竹石
发布于 2014/05/07 11:31
字数 361
阅读 10068
收藏 0

      在默认情况下,Android应用程序启动时,会有一个黑屏的时期,原因是,首个activity会加载一些数据,比如初 始化列表数据、向服务器发送请求获取数据等等。同样,使用startActivity(intent)方法从一个Activity进入到新的 Activity时,这个过程中也会出现短暂的黑屏。这个问题的存在是由Android应用框架决定的,但的确很影响用户体验。下面就动手来解决这个黑屏 问题!

第一步:自定义Theme(主题)

在your_project/res/values/styles.xml中加入自定义Activity的Theme,如下所示:

<?xml version="1.0" encoding="utf-8"?>
 <resources>     
 <!-- Activity主题 -->     
 <style name="activityTheme" parent="@android:style/Theme">         
 <item name="android:windowIsTranslucent">true</item>     
 </style> 
 </resources>

其中<item name="android:windowIsTranslucent">true</item>的意思是设置目标 Activity(要启动的那个Activity)是透明的。很容易理解,两个Activity,A和B;在A中启动B,因为B是透明的,看到的背景仍是 A,这样就解决了这个短暂的黑屏问题。

第二步:修改Manifest,将Theme应用到目标Activity上

定义好Theme后,就该为对应的Activity绑定Theme了。这个代码主要在Manifest中实现,在Activity中加上以下属性:

<activity android:name=".activity.BookActivity"        
android:theme="@style/activityTheme" />

做了以上操作即可。


© 著作权归作者所有

共有 人打赏支持
今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
android 学习笔记 事件 转跳页面

实现页面转跳 android 页面之间的转跳,可以通过构建一个Intent对象来实现转跳。 转跳到的activity类,可以通过 intent类中的方法获取其他组件传递过来的信息。 2.回跳 转跳到新的页面后,我...

304158
07/27
0
0
android 程序启动界面的短暂黑屏

默认的情况下,android 程序启动时,会有一个黑屏的时期, 只要在入口activity 加上android:theme="@android :style/Theme.Translucent" 就可以解决启动黑屏的问题...

平凡简单
2012/07/02
0
0
Android去掉标题栏和全屏[转]

Android去掉标题栏和全屏都是件很容易的事情,最常见的有两种方法: 第一:在程序代码中实现 Java代码 this.requestWindowFeature(Window.FEATURENOTITLE);//去掉标题栏 this.getWindow().s...

kut
2011/09/09
0
0
Android 面试技能树梳理

相信大家都有面试的经历,相对比面试官的问的一些问题其实都是基础的知识,但就是一些基础的知识我们也不是很完美的回答出来,我们也知道现在的开发人员很多,一家公司一个岗位就会有很多的开...

liu3364575
05/05
0
0
Flutter-Android开发者文档 -Intent

此文章为翻译Flutter官网的Flutter for Android Developers - Intent有兴趣的小伙伴可以移步官网查看。 Intent Flutter中的Intent是什么? 在Android中,Intent主要有两大使用方式:Activit...

AllAboutCoding
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Zookeeper总结

Zookeeper的部分概念 什么是zookeeeper? Zookeeper是一个分布式服务的协调中心 zookeeper节点的角色类型? Leader(领导者)、Follower(跟随者)、Observer(观察者) Leader 负责更新系统...

DemonsI
14分钟前
0
0
Redis学习笔记

常用命令 从Docker进入Redis的命令 sudo docker exec -it redis /bin/bash

OSC_fly
14分钟前
0
0
SqlServer查询某个日期的数据

select * from View_ZJMONITORINGCORROSION where ENTERDATE > CONVERT(datetime,DATEADD(day,1,'2017/12/28 14:53:07'))...

笑丶笑
15分钟前
0
0
常用编码规范

Standard characters https://ascii.cl/

yeahlife
17分钟前
0
0
flannel实战

docker swarm mode的出现是个里程碑,官方原生的编排调度看起来都成雏形了,但是swarm mode和容器外部系统的对接、网络性能始终不尽人意,swarm mode下各种开源周边不能使用,感觉swarm mod...

China_OS
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部