【问题标题】:Android how set different resource for different brand phone with xmlAndroid如何使用xml为不同品牌的手机设置不同的资源
【发布时间】:2017-07-15 02:00:28
【问题描述】:

有没有办法为不同品牌的手机设置不同的资源?

例如,我需要在三星和 HTC 手机之间获得不同的可绘制对象。

我知道我可以通过程序实现这一点,但无论如何只能通过 XML 实现这一点?就像为不同的语言环境设置不同的资源一样。

【问题讨论】:

    标签: android xml android-studio android-resources


    【解决方案1】:

    怎么样:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        // code for fetch "brand_of_phone" or fetch it in Application.java
        // ...
    
        if(brand_of_phone.equals("samsung")){
            setContentView(R.layout.activity_brand_samsung);
        }else if(brand_of_phone.trim().contains("htc")){
            setContentView(R.layout.activity_brand_htc);
        }else {
            setContentView(R.layout.activity_brand);
        }
    }
    

    不同品牌使用不同的布局文件。然后你可以为不同的语言环境设置不同的资源。

    【讨论】:

    • 实际上,如果他们做得正确,他们在 xml 中使用了不同的主题。
    【解决方案2】:

    没有可用于区分手机品牌的资源限定符。

    您可以使用的资源限定符的完整列表可在此处获得: https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

    与您要查找的内容最接近的是第一个限定符(“移动网络代码”)的后半部分,但这是为了区分运营商,而不是品牌。

    通过 Java,您可以使用 Build.BRAND 常量访问设备的品牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-26
      • 2014-12-07
      • 2011-01-16
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      相关资源
      最近更新 更多