Android 什么';防止UI组件被系统级组件替换的最简单方法是什么?

Android 什么';防止UI组件被系统级组件替换的最简单方法是什么?,android,android-ui,Android,Android Ui,我设计的应用程序运行在一个漂亮、漂亮、干净的holo主题(谷歌默认设置)上,当我将其安装在我兄弟的设备上时,我意外地发现标准UI组件(微调器、进度条、水平进度条等)被某种工厂预装组件覆盖。现在,这些组件在系统范围的ui上应用时很好,但它们在我的应用程序中很糟糕 我哥哥的手机是S4的某种中国复制品,但我想其他非谷歌设备也会如此 我想到的唯一解决方案是为我不想被覆盖的每个组件创建一个自定义组件,从android源代码复制其xml。我不知道该怎么做,但与我想要达到的目标相比,似乎有很多麻烦 在每台设备

我设计的应用程序运行在一个漂亮、漂亮、干净的holo主题(谷歌默认设置)上,当我将其安装在我兄弟的设备上时,我意外地发现标准UI组件(微调器、进度条、水平进度条等)被某种工厂预装组件覆盖。现在,这些组件在系统范围的ui上应用时很好,但它们在我的应用程序中很糟糕

我哥哥的手机是S4的某种中国复制品,但我想其他非谷歌设备也会如此

我想到的唯一解决方案是为我不想被覆盖的每个组件创建一个自定义组件,从android源代码复制其xml。我不知道该怎么做,但与我想要达到的目标相比,似乎有很多麻烦

在每台设备上安装holo组件运行我的应用程序最简单的方法是什么


编辑我的答案

在我的应用程序中,我将minSdkVersion设置为11。主题在清单中的应用程序标记处设置,并且是“AppTheme”,在该文件中配置

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@style/_AppTheme">
        <!-- Customize your theme here. -->
    </style>

    <style name="_AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:progressBarStyleHorizontal">
            @style/Widget.Custom.ProgressBar.Horizontal.Green
        </item>
    </style>

</resources>

@style/Widget.Custom.ProgressBar.Horizontal.Green
我将检查我兄弟的设备,了解安装的play store,并在此处报告

我只是想告诉你最新的主题,因为我看到你在谈论主题。。。也许AppCompat库出了什么问题

但我想其他非谷歌设备也会如此

通常不会

如果设备合法地拥有Play Store(即,它不是用户或设备制造商放在那里的盗版副本),则必须保留
主题.Holo
主题集。
主题.DeviceDefault
主题集是设备制造商可以修补的主题

当然,全息小部件主题只存在于API级别11+上

在每台设备上安装holo组件运行我的应用程序最简单的方法是什么

如果您的
android:minSdkVersion
为11或更高版本,请使用继承自
theme.Holo
的主题,不要担心会破坏该主题的设备,如您兄弟的手机


如果您的代码> Android:MimSDKValue为10或更低,欢迎您考虑HooLoad项目,尽管我个人不会。在较旧的设备上,用户期望的是设备自己的主题,而不是全息主题,因此用户可能无法识别像

EditText
Spinner
这样的东西,它们在全息主题中看起来很不一样。

您确定您兄弟的手机制造商提供了GUI组件吗?我认为可能性不大。也许是安卓版本的不同以及屏幕大小等不同的缩放问题。你能在这里放两张截图吗?一张来自你的设备,一张来自你哥哥的吗?@user2707175我马上会做的对不起,我得等我哥哥回来了。我用的是minSdkVersion:11。我更新了关于主题的问题。@domenicop:对不起,我没有检查
主题.AppCompat
以查看它继承了什么。我检查了Play Store,它似乎与Nexus 5上的一个相同,上面有一个stock 4.4.2。我发现一件有趣的事情是,即使在Gmail中,Play Store et similia也使用了一个没有默认小部件的主题。这是否表明在这个特定的设备中,股票主题.Holo已被触动?@domenicop:“这是否表明在这个特定的设备中,股票主题.Holo已被触动?”——可能。当我看不见东西的时候,我没有什么好办法来帮助你。“我检查了Play Store,它似乎与我的Nexus 5上的一个完全相同,上面有一个4.4.2版本”——这并不意味着它是合法许可的。