Exemplo n.º 1
0
 /** apply clickable in view */
 public static void applyClickable(View view, DynamicProperty property) {
   if (view != null) {
     switch (property.type) {
       case BOOLEAN:
         {
           view.setClickable(property.getValueBoolean());
         }
         break;
     }
   }
 }
Exemplo n.º 2
0
 /** apply adjustBounds property in ImageView */
 public static void applyAdjustBounds(View view, DynamicProperty property) {
   if (view instanceof ImageView) {
     switch (property.type) {
       case BOOLEAN:
         {
           ((ImageView) view).setAdjustViewBounds(property.getValueBoolean());
         }
         break;
     }
   }
 }
Exemplo n.º 3
0
  /**
   * apply dynamic properties for layout in view
   *
   * @param view
   * @param properties : layout properties to apply
   * @param viewGroup : parent view
   * @param ids : hashmap of ids <String, Integer> (string as setted in json, int that we use in
   *     layout)
   */
  public static void applyLayoutProperties(
      View view,
      List<DynamicProperty> properties,
      ViewGroup viewGroup,
      HashMap<String, Integer> ids) {
    if (viewGroup == null) return;
    ViewGroup.LayoutParams params = createLayoutParams(viewGroup);

    for (DynamicProperty dynProp : properties) {
      try {
        switch (dynProp.name) {
          case LAYOUT_HEIGHT:
            {
              params.height = dynProp.getValueInt();
            }
            break;
          case LAYOUT_WIDTH:
            {
              params.width = dynProp.getValueInt();
            }
            break;
          case LAYOUT_MARGIN:
            {
              if (params instanceof ViewGroup.MarginLayoutParams) {
                ViewGroup.MarginLayoutParams p = ((ViewGroup.MarginLayoutParams) params);
                p.bottomMargin = p.topMargin = p.leftMargin = p.rightMargin = dynProp.getValueInt();
              }
            }
            break;
          case LAYOUT_MARGINLEFT:
            {
              if (params instanceof ViewGroup.MarginLayoutParams) {
                ((ViewGroup.MarginLayoutParams) params).leftMargin = dynProp.getValueInt();
              }
            }
            break;
          case LAYOUT_MARGINTOP:
            {
              if (params instanceof ViewGroup.MarginLayoutParams) {
                ((ViewGroup.MarginLayoutParams) params).topMargin = dynProp.getValueInt();
              }
            }
            break;
          case LAYOUT_MARGINRIGHT:
            {
              if (params instanceof ViewGroup.MarginLayoutParams) {
                ((ViewGroup.MarginLayoutParams) params).rightMargin = dynProp.getValueInt();
              }
            }
            break;
          case LAYOUT_MARGINBOTTOM:
            {
              if (params instanceof ViewGroup.MarginLayoutParams) {
                ((ViewGroup.MarginLayoutParams) params).bottomMargin = dynProp.getValueInt();
              }
            }
            break;
          case LAYOUT_ABOVE:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ABOVE, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_BELOW:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.BELOW, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_TOLEFTOF:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.LEFT_OF, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_TORIGHTOF:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.RIGHT_OF, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_TOSTARTOF:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.START_OF, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_TOENDOF:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.END_OF, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNBASELINE:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ALIGN_BASELINE, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNLEFT:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ALIGN_LEFT, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNTOP:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ALIGN_TOP, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNRIGHT:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ALIGN_RIGHT, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNBOTTOM:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ALIGN_BOTTOM, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNSTART:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ALIGN_START, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNEND:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params)
                    .addRule(RelativeLayout.ALIGN_END, ids.get(dynProp.getValueString()));
            }
            break;
          case LAYOUT_ALIGNWITHPARENTIFMISSING:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).alignWithParent = dynProp.getValueBoolean();
            }
            break;
          case LAYOUT_ALIGNPARENTTOP:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.ALIGN_PARENT_TOP);
            }
            break;
          case LAYOUT_ALIGNPARENTBOTTOM:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            }
            break;
          case LAYOUT_ALIGNPARENTLEFT:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            }
            break;
          case LAYOUT_ALIGNPARENTRIGHT:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
            }
            break;
          case LAYOUT_ALIGNPARENTSTART:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.ALIGN_PARENT_START);
            }
            break;
          case LAYOUT_ALIGNPARENTEND:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.ALIGN_PARENT_END);
            }
            break;
          case LAYOUT_CENTERHORIZONTAL:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.CENTER_HORIZONTAL);
            }
            break;
          case LAYOUT_CENTERVERTICAL:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.CENTER_VERTICAL);
            }
            break;
          case LAYOUT_CENTERINPARENT:
            {
              if (params instanceof RelativeLayout.LayoutParams)
                ((RelativeLayout.LayoutParams) params).addRule(RelativeLayout.CENTER_IN_PARENT);
            }
            break;
          case LAYOUT_GRAVITY:
            {
              switch (dynProp.type) {
                case INTEGER:
                  {
                    if (params instanceof LinearLayout.LayoutParams)
                      ((LinearLayout.LayoutParams) params).gravity = dynProp.getValueInt();
                  }
                  break;
                case STRING:
                  {
                    if (params instanceof LinearLayout.LayoutParams)
                      ((LinearLayout.LayoutParams) params).gravity =
                          (Integer)
                              dynProp.getValueInt(
                                  Gravity.class, dynProp.getValueString().toUpperCase());
                  }
                  break;
              }
            }
            break;
          case LAYOUT_WEIGHT:
            {
              switch (dynProp.type) {
                case FLOAT:
                  {
                    if (params instanceof LinearLayout.LayoutParams)
                      ((LinearLayout.LayoutParams) params).weight = dynProp.getValueFloat();
                  }
                  break;
              }
            }
            break;
        }
      } catch (Exception e) {
      }
    }

    view.setLayoutParams(params);
  }