【问题标题】:Android UI customization based on the network operator基于网络运营商的Android UI定制
【发布时间】:2016-01-20 07:06:51
【问题描述】:

我需要根据手机中插入的 SIM 运营商自定义我的 Android 应用程序的 UI。例如,如果我插入 airtel,我需要获得带有黄色启动器图标的黄色 UI。对于 Vodafone,我需要获得带有紫色启动器图标的紫色 UI。

是否可以根据手机中的运营商指向不同的资源文件夹?或者如何自定义主题?还有什么方法可以做到这一点?

【问题讨论】:

标签: android


【解决方案1】:

是的,完全有可能!

  • 首先创建多个布局 xml 文件(针对每个操作员)。

  • 然后确定您使用的是哪个运算符。

    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String opName = telephonyManager.getNetworkOperatorName();
    
  • 现在,根据操作员的名称应用布局。

    if(opName.equals("vodafone")){
          setContentView(R.layout.vodafone_layout);
    }
    

使用上面讨论的方法,您可以为每个操作员拥有多个(可能不同的布局结构和每个操作员的小部件)布局。如果您只想为每个操作员更改 主题,更好的方法是在调用 setContentView() 之前使用 setTheme()

【讨论】:

【解决方案2】:

您可以使用以下代码获取运营商名称

    TelephonyManager manager = (TelephonyManager) 
getSystemService(Context.TELEPHONY_SERVICE);

String carrierName = manager.getNetworkOperatorName();

一旦你有了名字,你就可以将字符串与预定义的名字字符串进行比较,然后相应地改变颜色

【讨论】:

  • 好的,谢谢。如果我想根据运算符更改整个资源文件夹。这可能吗?
  • 我不认为你可以。您必须手动更改所有图像
【解决方案3】:

https://developer.android.com/guide/topics/resources/providing-resources#AlternativeResources 可以将 mcc mnc 与布局文件夹结合使用,为布局文件指定区域特定和运营商特定的自定义。

【讨论】:

    猜你喜欢
    • 2011-08-24
    • 2017-02-20
    • 1970-01-01
    • 2020-12-16
    • 2010-12-10
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多