我尝试使用颜色,但是边框变得更清晰。
我的styles.xml
<style name="MyTheme" parent="AppTheme">
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowTranslucentStatus">true</item>
<!-- system_bar_background_semi_transparent 40% black -->
<item name="colorPrimary">#66000000</item>
</style>
PS:来自模拟器(Android 9,API级别28)的屏幕截图,我无法在真实设备上进行测试。
答案 0 :(得分:0)
带有android:windowTranslucentStatus
的状态栏外观由系统控制。该属性自Kitkat开始存在,它将导致从黑色顶部到透明底部的渐变。在AOSP棒棒糖上,它被实心#44000000
代替,但是不能依靠,因为不同的制造商以不同的方式实现了这一点。例如。我后来的Xperia L使用了与Kitkat相同的实现。
如果要完全控制状态栏颜色,请使用以下属性组合:
<!-- Make the app responsible for drawing status bar and navigation bar backgrounds. -->
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item>
<!-- Change the status bar background to whatever you want. -->
<item name="android:statusBarColor" tools:targetApi="lollipop">#6000</item>
半透明物体后面的暗区是高程阴影造成的。阴影被绘制在整个对象的后面,而不仅仅是周围。您可以像这样从操作栏中删除阴影:
<style name="MyTheme" parent="AppTheme">
<item name="actionBarStyle">@style/Widget.MyApp.ActionBar.Translucent</item>
</style>
<style name="Widget.MyApp.ActionBar" parent="@style/Widget.AppCompat.ActionBar">
<item name="elevation">0dp</item>
<!-- While at it you can keep normal primary color and change just the action bar background here. -->
<item name="background">#6000</item>
</style>