美文网首页
Android UI零碎

Android UI零碎

作者: 小智在不在 | 来源:发表于2020-12-07 11:40 被阅读0次

    1. Drawable的状态共享

     不同VIew使用同一个Drawable时,一个地方改动Drawable其他地方也会改动,比如调用了Drawable的enable改变状态,这个时候如果指向改变当前View的Drawable不想影响其他View可以调用Drawable#mutate ()方法拷贝当前Drawable对象,这样将拷贝出来的对象做修改就不会影响到其他地方。

    2. Android11上fitsystemwindows属性的变更

     Android R(11)版本fitsystemwindows属性会包含刘海的高度,Android原生变更,需要应用进行适配,不使用全屏FLAG,而是使用SYSTEM_UI_FLAG_LOW_PROFILE。

    3. Android Activiyt透明属性直接显示壁纸(某些版本的Android设备上)

     当我们设置Activity为透明时通常在style中设置,可以在Activity使用的style下加入标签<item name="android:windowShowWallpaper">true</item>使Activity穿透显示,直接显示桌面壁纸,代码如下:

    <style name="translucent" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="android:windowIsTranslucent">true</item> <!-- Activity是否设置透明 -->
            <item name="android:windowBackground">@android:color/transparent</item> <!-- 窗体背景 -->
            <item name="android:windowContentOverlay">@null</item> <!-- 设置窗体内容背景 -->
            <item name="android:windowFullscreen">false</item> <!-- 是否为全屏 -->
            <!-- 是否穿透显示壁纸 -->
            <item name="android:windowShowWallpaper">true</item> <!-- 是否显示壁纸 -->
    </style>
    

    举例,有Activity A和B,A不透明,B透明,B显示在A上方,B的style中未添加该标签时用户可以透过B看到A,当B的style中加入该标签时A不可见,用户可以透过B直接看到桌面壁纸(注意是桌面壁纸不是桌面,桌面上的图标这些是不可见的),两种效果如图:

    未添加标签,显示上一个Activity 添加标签,直接显示桌面壁纸

    相关文章

      网友评论

          本文标题:Android UI零碎

          本文链接:https://www.haomeiwen.com/subject/xzizwktx.html