1、制作一张启动splashpng,放置在res->drawable-hdpi文件夹中。
2、新建布局文件splashxml
<xml version="10" encoding="utf-8">
<RelativeLayout xmlns:android=">
你说的是编程时的预览视图还是真机测试效果?
如果只是预览有问题,修改下下面两个属性就好了
如果是运行时有问题,把你自己写的style标签发一下,类似
<style name="MyTheme" parent="android:ThemeHoloLight">
我比较好奇你标签中的parent属性填的是什么?
设置Android的Activity标题的背景是有多种方法的首先最简单的是直接在布局里面设置个background
其中background是可以直接使用颜色或者或者是自定义的形状
还有就是可以利用Android:theme 自带的主题背景设置
设置theme更改主题背景
下面是自带的theme说明文档
Android应用开发——系统自带样式Android:theme
•android:theme="@android:style/ThemeDialog" 将一个Activity显示为能话框模式
•android:theme="@android:style/ThemeNoTitleBar" 不显示应用程序标题栏这个语句貌似在sdk 是40以上才行,40以下使用会报错,如果你是想去掉标题栏建议你在Activity中使用requestWindowFeature(WindowFEATURE_NO_TITLE);这句话,但是一定要放在setContentView()方法的前面,不然会报错的。就紧挨着setContentView上面就可以了。我一直用的这句话,很方便。望采纳。最近在优化App,首先从界面上优化,对所有页面的ui绘制进行查看和优化,其中发现在
Api 小于21的手机设备上的效果图为:
运行在Api大于21的设备上的效果图为:
同样是使用统一兼容主题
在图1中发现了过度绘制现象。就是这一端绿色的区域。可我们的完全定义的是全屏的啊?为什么会出现这种情况呢。
在解释上面现象之前,首先了解下Android使用Theme的正确用法:
Android的Theme的主要来源分为以下三种:
这里主要探讨前两者,自定义主题不做探讨,使用Android系统自带的Theme要加上"android:",如:android:ThemeLight,使用v7兼容包的主题就不需要前缀了,直接:ThemeAppCompat。现在看看有哪些主题:
1系统自带主题:
ThemeAppCompat主题是兼容主题,是什么意思呢?
意思就是说如果运行程序在手机API是21则就是相当于使用Material主题,如果运行程序的手机API是11则就相当于使用Holo主题,以此类推。
兼容v7会被Google公司不断升级:
比如appcompat-v7-210表示升级到向API 21兼容
比如appcompat-v7-232表示升级到向API 23兼容
所以要使用最新的兼容包。
我们已经知道了统一使用兼容包的话,目标设备API 为21及以上时会使用Material主题,API 为11时使用Holo主题,下面我们来比较下Material与Holo主题的区别:
通过比较发现Holo主题的windoContentOverlay使用ab_solid_shadow_holo为背景,而Material未设置任何背景。再来看下windoContentOverlay是何许人也,查看源码得知:
onCreate()中设置的WindowFEATURE_NO_TITLE对应的窗口修饰布局文件为screen_simplexml:
windowContentOverlay代表content的foreground并且填充宽,位于content的顶部,代表内容区域顶部的阴影背景(与TitleBar和ActionBar都没有关系),因为这种属性是在无标题栏的时候才会被设置到content的top,所以有标题栏或者actionBar时也不会出现这种情况。现在问题就迎刃而解了,修改Theme为:
增加<item name="android:windowContentOverlay">@null</item>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)