/** apply minimum Height in view */ public static void applyMinHeight(View view, DynamicProperty property) { if (view != null) { if (property.type == DynamicProperty.TYPE.DIMEN) { view.setMinimumHeight(property.getValueInt()); } } }
/** * apply gravity property in textView - INTEGER => valus of gravity in @link(Gravity.java) - * STRING => name of variable in @lin(Gravity.java) */ public static void applyGravity(View view, DynamicProperty property) { if (view instanceof TextView) { switch (property.type) { case INTEGER: { ((TextView) view).setGravity(property.getValueInt()); } break; case STRING: { ((TextView) view) .setGravity( (Integer) property.getValueInt( Gravity.class, property.getValueString().toUpperCase())); } break; } } }
/** apply the textStyle in textView */ public static void applyTextStyle(View view, DynamicProperty property) { if (view instanceof TextView) { switch (property.type) { case INTEGER: { ((TextView) view).setTypeface(null, property.getValueInt()); } break; } } }
/** apply padding in view */ public static void applyPadding(View view, DynamicProperty property) { if (view != null) { switch (property.type) { case DIMEN: { int padding = property.getValueInt(); view.setPadding(padding, padding, padding, padding); } break; } } }
/** apply padding in view */ public static void applyPadding(View view, DynamicProperty property, int position) { if (view != null) { switch (property.type) { case DIMEN: { int[] padding = new int[] { view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom() }; padding[position] = property.getValueInt(); view.setPadding(padding[0], padding[1], padding[2], padding[3]); } break; } } }
/** apply orientation property in LinearLayout - INTEGER => 0:Horizontal , 1:Vertical - STRING */ public static void applyOrientation(View view, DynamicProperty property) { if (view instanceof LinearLayout) { switch (property.type) { case INTEGER: { ((LinearLayout) view) .setOrientation( property.getValueInt() == 0 ? LinearLayout.HORIZONTAL : LinearLayout.VERTICAL); } break; case STRING: { ((LinearLayout) view) .setOrientation( property.getValueString().equalsIgnoreCase("HORIZONTAL") ? LinearLayout.HORIZONTAL : LinearLayout.VERTICAL); } break; } } }
/** apply maxLines property in textView */ public static void applyMaxLines(View view, DynamicProperty property) { if (view instanceof TextView) { ((TextView) view).setMaxLines(property.getValueInt()); } }
/** * 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); }