app 配置主题-android

2021-04-19 17:04:31 阅读:3 编辑
//E:\edison\zhyshop_app\platforms\android\WeexFrameworkWrapper\pluginsimple\pluginsimple\src\main\java\com\benmu\pluginsimple\ErosPluginSimple.java
@JSMethod(uiThread = false)
    public String setThemeConfig(String params) {

        String res = "ok";
        JSONObject obj2 = null;
        try {
            Map<String, Integer> themeColorMap = new HashMap();
            String data[] = new String[7];
            data[0] = "tomato";
            data[1] = "aliceblue";
            data[2] = "peru";
            data[3] = "papayawhip";
            data[4] = "orangered";
            data[5] = "lavenderblush";
            data[6] = "mintcream";
            obj2 = new JSONObject(params);
            for(int i=0; i < 7; ++i){

                String key = data[i];
                String value = obj2.getString(key);
                themeColorMap.put(key, Color.parseColor(value));
            }

            WXResourceUtils.setThemeConfig(themeColorMap);

            Log.i("erosplugin","setThemeConfig");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return res;
    }

//E:\edison\zhyshop_app\platforms\android\WeexFrameworkWrapper\nexus\sdk\src\main\java\com\taobao\weex\utils\WXResourceUtils.java

 public static int getColor(String color, int defaultColor) {
    if (TextUtils.isEmpty(color)) {
      return defaultColor;
    }
    color = color.trim(); //remove non visible codes
      switch (color){
          case "#FF6347":{
              color = "tomato";
              break;
          }
          case "#F0F8FF":{
              color = "aliceblue";
              break;
          }
          case "#CD853F":{
              color = "peru";
              break;
          }
          case "#FFEFD5":{
              color = "papayawhip";
              break;
          }
          case "#FF4500":{
              color = "orangered";
              break;
          }
          case "#FFF0F5":{
              color = "lavenderblush";
              break;
          }
          case "#F5FFFA":{
              color = "mintcream";
              break;
          }
      }
    int resultColor = defaultColor;
    Pair<Boolean, Integer> result;
    ColorConvertHandler[] handlers = ColorConvertHandler.values();
    for (ColorConvertHandler handler : handlers) {
      try {
        result = handler.handle(color);
        if (result.first) {
          resultColor = result.second;
          break;
        }
      } catch (RuntimeException e) {
        WXLogUtils.v("Color_Parser", WXLogUtils.getStackTrace(e));
      }
    }
    return resultColor;
  }

   public static void setThemeConfig(Map<String, Integer> themeColorMap){
      Iterator iter = themeColorMap.keySet().iterator();
      Log.i("color1","setThemeConfig");
        while (iter.hasNext()) {
          Object key = iter.next();
            Object val = themeColorMap.get(key);
            String key1 = key.toString();
            Integer val1 = Integer.parseInt(String.valueOf(val));
            Log.i("color1",key1);
            Log.i("color1",val1.toString());
          colorMap.put(key1, val1);

      }
  }