问题描述
将 graddle 文件中的应用程序 ID (xxxx.yyyyyy) 更改为其他内容 (xxxx.yyyyyy.zzzzz) 时,出现奇怪的颜色行为。 奇怪的是,这不会发生在移动设备上的模拟器上。
这是我为可绘制对象设置颜色的方法:
View viw = (View) main.findViewWithTag(R.id.viw);
Drawable dwl = DrawableCompat.wrap(viw.getBackground());
int backColor = getResources().getColor(R.color.teal);
int foreColor = getResources().getColor(R.color.Black);
if (voltage < 1)
backColor = getResources().getColor(R.color.MediumDarkGrey);
else if (min != avg && value == min)
backColor = getResources().getColor(R.color.LightRed);
else if (min != avg && value == max)
backColor = getResources().getColor(R.color.LightBlue);
else if (value == avg)
backColor = getResources().getColor(R.color.LightOrange);
// set color
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
DrawableCompat.setTint(dwl,backColor);
else
DrawableCompat.setTint(dwl.mutate(),backColor);
这是颜色文件:
<!-- colors -->
<color name="Black">#ff000000</color>
<color name="MediumDarkGrey">#ff3e3e3e</color>
<color name="teal">#ff008080</color>
<color name="LightBlue">#ff89bff8</color>
<color name="LightOrange">#fffecb4c</color>
<color name="LightRed">#ffd68080</color>
以下是应用程序 ID xxx.yyy 与包名称匹配的设备上的外观:
https://i.stack.imgur.com/YCHm4.jpg
如果我将应用程序 ID 更改为 xxx.yyy.zzz,设备上的显示如下:
https://i.stack.imgur.com/wEGTo.jpg
我需要更改应用程序 ID,因为我要上传同一个应用程序的两个版本,这两个版本需要在 Playstore 中使用不同的应用程序 ID。
解决方法
好的,在这里找到答案:
How to disable night mode in my application even if night mode is enable in android 9.0 (pie)?
什么对我有用:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
</style>
仍然不确定为什么更改应用程序 ID 会触发某些可绘制对象上的深色主题颜色更改...