- 必须知道
默认的程序Application使用的是AppTheme:
s <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
这里用的是parent:Theme.AppCompat.Light.NoActionBar没有ActionBar并且是淡色主题,就是界面的主题颜色是淡色,陪衬颜色是深色。与之对应的是
Theme.AppCompat.NoAction 深颜色主题,陪衬的是浅色的。
- 实现当前Activity的半透明/透明效果
第一步:在res/values/styles.xml文件下面,建立如下所示代码:
<style name="myTransparent" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
/**这里需要注意的是,必须要有这个parent 继承自AppCompat系列,要不然程序就会出错*/
第二步:
看上面,可以发现需要自己的颜色color/transparent
<color name="transparent">#50000000</color> //比如这个数字,设置出来显示的是灰但是可以看见下层的activity
如果用#00000000则是完全透明了,调制透明主要是通过前面两位,从00~90这个可控范围之间。
第三步:
在清单文件中,对需要的activity配置android:theme:这个属性。
第四步:
在需要的activity的onCreate()方法中,配置:
setTheme(R.style.Transparent); //使用这个主题
setContentView(R.layout.transparent); //给其设置布局文件