package com.forfan.bigbang.util; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.graphics.Point; import android.graphics.drawable.Drawable; import android.os.Build; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.Display; import android.view.KeyCharacterMap; import android.view.KeyEvent; import android.view.View; import android.view.ViewConfiguration; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import com.forfan.bigbang.BigBangApp; import java.util.concurrent.atomic.AtomicInteger; public class ViewUtil { public static final long FRAME_DURATION = 1000 / 60; private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1); @SuppressLint("NewApi") public static int generateViewId() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { for (;;) { final int result = sNextGeneratedId.get(); // aapt-generated IDs have the high byte nonzero; clamp to the range under that. int newValue = result + 1; if (newValue > 0x00FFFFFF) newValue = 1; // Roll over to 1, not 0. if (sNextGeneratedId.compareAndSet(result, newValue)) return result; } } else return View.generateViewId(); } public static boolean hasState(int[] states, int state){ if(states == null) return false; for (int state1 : states) if (state1 == state) return true; return false; } public static void setBackground(View v, Drawable drawable){ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) v.setBackground(drawable); else v.setBackgroundDrawable(drawable); } public static int dp2px(float dp){ return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, BigBangApp.getInstance().getResources().getDisplayMetrics()); } public static float px2dp(float px){ return px/ BigBangApp.getInstance().getResources().getDisplayMetrics().density; } public static float sp2px(float sp){ return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, BigBangApp.getInstance().getResources().getDisplayMetrics()); } public static float px2sp(float px){ return px/BigBangApp.getInstance().getResources().getDisplayMetrics().scaledDensity; } public static void hideInputMethod(View view){ InputMethodManager imm= (InputMethodManager) BigBangApp.getInstance().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } public static void requestInputMethodIfShow(final EditText view){ final InputMethodManager imm= (InputMethodManager) BigBangApp.getInstance().getSystemService(Context.INPUT_METHOD_SERVICE); if(imm.isActive()) { view.requestFocus(); view.setSelection(view.getText().length(),view.getText().length()); } } public static void showInputMethod(View view){ InputMethodManager imm= (InputMethodManager) BigBangApp.getInstance().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); } public static boolean isNavigationBarShow(Activity activity){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { Display display = activity.getWindowManager().getDefaultDisplay(); Point size = new Point(); Point realSize = new Point(); display.getSize(size); display.getRealSize(realSize); return realSize.y!=size.y; }else { boolean menu = ViewConfiguration.get(activity).hasPermanentMenuKey(); boolean back = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); if(menu || back) { return false; }else { return true; } } } public static int getNavigationBarHeight(Activity activity) { if (!isNavigationBarShow(activity)){ return 0; } Resources resources = activity.getResources(); int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); //获取NavigationBar的高度 int height = resources.getDimensionPixelSize(resourceId); return height; } public static int getScreenWidth(Activity activity){ DisplayMetrics localDisplayMetrics = new DisplayMetrics(); ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(localDisplayMetrics); return localDisplayMetrics.widthPixels; } public static int getSceenHeight(Activity activity) { return activity.getWindowManager().getDefaultDisplay().getHeight()+getNavigationBarHeight(activity); } // /** // * Apply any View style attributes to a view. // * @param v The view is applied. // * @param resId The style resourceId. // */ // public static void applyStyle(View v, int resId){ // applyStyle(v, null, 0, resId); // } // // /** // * Apply any View style attributes to a view. // * @param v The view is applied. // * @param attrs // * @param defStyleAttr // * @param defStyleRes // */ // public static void applyStyle(View v, AttributeSet attrs, int defStyleAttr, int defStyleRes){ // TypedArray a = v.getContext().obtainStyledAttributes(attrs, R.styleable.View, defStyleAttr, defStyleRes); // // int leftPadding = -1; // int topPadding = -1; // int rightPadding = -1; // int bottomPadding = -1; // int startPadding = Integer.MIN_VALUE; // int endPadding = Integer.MIN_VALUE; // int padding = -1; // // boolean startPaddingDefined = false; // boolean endPaddingDefined = false; // boolean leftPaddingDefined = false; // boolean rightPaddingDefined = false; // // for(int i = 0, count = a.getIndexCount(); i < count; i++){ // int attr = a.getIndex(i); // if(attr == R.styleable.View_android_background) { // Drawable bg = a.getDrawable(attr); // ViewUtil.setBackground(v, bg); // } // else if(attr == R.styleable.View_android_backgroundTint){ // if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setBackgroundTintList(a.getColorStateList(attr)); // } // else if(attr == R.styleable.View_android_backgroundTintMode){ // if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ // int value = a.getInt(attr, 3); // switch (value){ // case 3: // v.setBackgroundTintMode(PorterDuff.Mode.SRC_OVER); // break; // case 5: // v.setBackgroundTintMode(PorterDuff.Mode.SRC_IN); // break; // case 9: // v.setBackgroundTintMode(PorterDuff.Mode.SRC_ATOP); // break; // case 14: // v.setBackgroundTintMode(PorterDuff.Mode.MULTIPLY); // break; // case 15: // v.setBackgroundTintMode(PorterDuff.Mode.SCREEN); // break; // case 16: // v.setBackgroundTintMode(PorterDuff.Mode.ADD); // break; // } // } // } // else if(attr == R.styleable.View_android_elevation){ // if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setElevation(a.getDimensionPixelOffset(attr, 0)); // } // else if(attr == R.styleable.View_android_padding) { // padding = a.getDimensionPixelSize(attr, -1); // leftPaddingDefined = true; // rightPaddingDefined = true; // } // else if(attr == R.styleable.View_android_paddingLeft) { // leftPadding = a.getDimensionPixelSize(attr, -1); // leftPaddingDefined = true; // } // else if(attr == R.styleable.View_android_paddingTop) // topPadding = a.getDimensionPixelSize(attr, -1); // else if(attr == R.styleable.View_android_paddingRight) { // rightPadding = a.getDimensionPixelSize(attr, -1); // rightPaddingDefined = true; // } // else if(attr == R.styleable.View_android_paddingBottom) // bottomPadding = a.getDimensionPixelSize(attr, -1); // else if(attr == R.styleable.View_android_paddingStart) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // startPadding = a.getDimensionPixelSize(attr, Integer.MIN_VALUE); // startPaddingDefined = (startPadding != Integer.MIN_VALUE); // } // } // else if(attr == R.styleable.View_android_paddingEnd) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // endPadding = a.getDimensionPixelSize(attr, Integer.MIN_VALUE); // endPaddingDefined = (endPadding != Integer.MIN_VALUE); // } // } // else if(attr == R.styleable.View_android_fadeScrollbars) // v.setScrollbarFadingEnabled(a.getBoolean(attr, true)); // else if(attr == R.styleable.View_android_fadingEdgeLength) // v.setFadingEdgeLength(a.getDimensionPixelOffset(attr, 0)); // else if(attr == R.styleable.View_android_minHeight) // v.setMinimumHeight(a.getDimensionPixelSize(attr, 0)); // else if(attr == R.styleable.View_android_minWidth) // v.setMinimumWidth(a.getDimensionPixelSize(attr, 0)); // else if(attr == R.styleable.View_android_requiresFadingEdge) // v.setVerticalFadingEdgeEnabled(a.getBoolean(attr, true)); // else if(attr == R.styleable.View_android_scrollbarDefaultDelayBeforeFade) { // if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) // v.setScrollBarDefaultDelayBeforeFade(a.getInteger(attr, 0)); // } // else if(attr == R.styleable.View_android_scrollbarFadeDuration) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) // v.setScrollBarFadeDuration(a.getInteger(attr, 0)); // } // else if(attr == R.styleable.View_android_scrollbarSize) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) // v.setScrollBarSize(a.getDimensionPixelSize(attr, 0)); // } // else if(attr == R.styleable.View_android_scrollbarStyle) { // int value = a.getInteger(attr, 0); // switch (value){ // case 0x0: // v.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); // break; // case 0x01000000: // v.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET); // break; // case 0x02000000: // v.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); // break; // case 0x03000000: // v.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_INSET); // break; // } // } // else if(attr == R.styleable.View_android_soundEffectsEnabled) // v.setSoundEffectsEnabled(a.getBoolean(attr, true)); // else if(attr == R.styleable.View_android_textAlignment){ // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // int value = a.getInteger(attr, 0); // switch (value){ // case 0: // v.setTextAlignment(View.TEXT_ALIGNMENT_INHERIT); // break; // case 1: // v.setTextAlignment(View.TEXT_ALIGNMENT_GRAVITY); // break; // case 2: // v.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START); // break; // case 3: // v.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_END); // break; // case 4: // v.setTextAlignment(View.TEXT_ALIGNMENT_CENTER); // break; // case 5: // v.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); // break; // case 6: // v.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_END); // break; // } // } // } // else if(attr == R.styleable.View_android_textDirection){ // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // int value = a.getInteger(attr, 0); // switch (value){ // case 0: // v.setTextDirection(View.TEXT_DIRECTION_INHERIT); // break; // case 1: // v.setTextDirection(View.TEXT_DIRECTION_FIRST_STRONG); // break; // case 2: // v.setTextDirection(View.TEXT_DIRECTION_ANY_RTL); // break; // case 3: // v.setTextDirection(View.TEXT_DIRECTION_LTR); // break; // case 4: // v.setTextDirection(View.TEXT_DIRECTION_RTL); // break; // case 5: // v.setTextDirection(View.TEXT_DIRECTION_LOCALE); // break; // } // } // } // else if(attr == R.styleable.View_android_visibility){ // int value = a.getInteger(attr, 0); // switch (value){ // case 0: // v.setVisibility(View.VISIBLE); // break; // case 1: // v.setVisibility(View.INVISIBLE); // break; // case 2: // v.setVisibility(View.GONE); // break; // } // } // else if(attr == R.styleable.View_android_layoutDirection){ // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // int value = a.getInteger(attr, 0); // switch (value){ // case 0: // v.setLayoutDirection(View.LAYOUT_DIRECTION_LTR); // break; // case 1: // v.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); // break; // case 2: // v.setLayoutDirection(View.LAYOUT_DIRECTION_INHERIT); // break; // case 3: // v.setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE); // break; // } // } // } // else if(attr == R.styleable.View_android_src){ // if(v instanceof ImageView){ // int resId = a.getResourceId(attr, 0); // ((ImageView)v).setImageResource(resId); // } // } // } // // if (padding >= 0) // v.setPadding(padding, padding, padding, padding); // else if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1){ // if(startPaddingDefined) // leftPadding = startPadding; // if(endPaddingDefined) // rightPadding = endPadding; // // v.setPadding(leftPadding >= 0 ? leftPadding : v.getPaddingLeft(), // topPadding >= 0 ? topPadding : v.getPaddingTop(), // rightPadding >= 0 ? rightPadding : v.getPaddingRight(), // bottomPadding >= 0 ? bottomPadding : v.getPaddingBottom()); // } // else{ // if(leftPaddingDefined || rightPaddingDefined) // v.setPadding(leftPaddingDefined ? leftPadding : v.getPaddingLeft(), // topPadding >= 0 ? topPadding : v.getPaddingTop(), // rightPaddingDefined ? rightPadding : v.getPaddingRight(), // bottomPadding >= 0 ? bottomPadding : v.getPaddingBottom()); // // if(startPaddingDefined || endPaddingDefined) // v.setPaddingRelative(startPaddingDefined ? startPadding : v.getPaddingStart(), // topPadding >= 0 ? topPadding : v.getPaddingTop(), // endPaddingDefined ? endPadding : v.getPaddingEnd(), // bottomPadding >= 0 ? bottomPadding : v.getPaddingBottom()); // } // // a.recycle(); // // if(v instanceof TextView) // applyStyle((TextView)v, attrs, defStyleAttr, defStyleRes); // } // // public static void applyFont(TextView v, AttributeSet attrs, int defStyleAttr, int defStyleRes){ // TypedArray a = v.getContext().obtainStyledAttributes(attrs, new int[]{R.attr.tv_fontFamily}, defStyleAttr, defStyleRes); // String fontFamily = a.getString(0); // // if(fontFamily != null){ // Typeface typeface = TypefaceUtil.load(v.getContext(), fontFamily, 0); // v.setTypeface(typeface); // } // // a.recycle(); // } // // public static void applyTextAppearance(TextView v, int resId){ // if(resId == 0) // return; // // String fontFamily = null; // int typefaceIndex = -1; // int styleIndex = -1; // int shadowColor = 0; // float dx = 0, dy = 0, r = 0; // // TypedArray appearance = v.getContext().obtainStyledAttributes(resId, R.styleable.TextAppearance); // if (appearance != null) { // int n = appearance.getIndexCount(); // for (int i = 0; i < n; i++) { // int attr = appearance.getIndex(i); // // if (attr == R.styleable.TextAppearance_android_textColorHighlight) { // v.setHighlightColor(appearance.getColor(attr, 0)); // // } else if (attr == R.styleable.TextAppearance_android_textColor) { // v.setTextColor(appearance.getColorStateList(attr)); // // } else if (attr == R.styleable.TextAppearance_android_textColorHint) { // v.setHintTextColor(appearance.getColorStateList(attr)); // // } else if (attr == R.styleable.TextAppearance_android_textColorLink) { // v.setLinkTextColor(appearance.getColorStateList(attr)); // // } else if (attr == R.styleable.TextAppearance_android_textSize) { // v.setTextSize(TypedValue.COMPLEX_UNIT_PX, appearance.getDimensionPixelSize(attr, 0)); // // } else if (attr == R.styleable.TextAppearance_android_typeface) { // typefaceIndex = appearance.getInt(attr, -1); // // } else if (attr == R.styleable.TextAppearance_android_fontFamily) { // fontFamily = appearance.getString(attr); // // } else if (attr == R.styleable.TextAppearance_tv_fontFamily) { // fontFamily = appearance.getString(attr); // // } else if (attr == R.styleable.TextAppearance_android_textStyle) { // styleIndex = appearance.getInt(attr, -1); // // } else if (attr == R.styleable.TextAppearance_android_textAllCaps) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) // v.setAllCaps(appearance.getBoolean(attr, false)); // // } else if (attr == R.styleable.TextAppearance_android_shadowColor) { // shadowColor = appearance.getInt(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_shadowDx) { // dx = appearance.getFloat(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_shadowDy) { // dy = appearance.getFloat(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_shadowRadius) { // r = appearance.getFloat(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_elegantTextHeight) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setElegantTextHeight(appearance.getBoolean(attr, false)); // // } else if (attr == R.styleable.TextAppearance_android_letterSpacing) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setLetterSpacing(appearance.getFloat(attr, 0)); // // } else if (attr == R.styleable.TextAppearance_android_fontFeatureSettings) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setFontFeatureSettings(appearance.getString(attr)); // // } // } // // appearance.recycle(); // } // // if (shadowColor != 0) // v.setShadowLayer(r, dx, dy, shadowColor); // // Typeface tf = null; // if (fontFamily != null) { // tf = TypefaceUtil.load(v.getContext(), fontFamily, styleIndex); // if (tf != null) // v.setTypeface(tf); // } // if(tf != null) { // switch (typefaceIndex) { // case 1: // tf = Typeface.SANS_SERIF; // break; // case 2: // tf = Typeface.SERIF; // break; // case 3: // tf = Typeface.MONOSPACE; // break; // } // v.setTypeface(tf, styleIndex); // } // } // // /** // * Apply any TextView style attributes to a view. // * @param v // * @param attrs // * @param defStyleAttr // * @param defStyleRes // */ // private static void applyStyle(TextView v, AttributeSet attrs, int defStyleAttr, int defStyleRes){ // String fontFamily = null; // int typefaceIndex = -1; // int styleIndex = -1; // int shadowColor = 0; // float dx = 0, dy = 0, r = 0; // // Drawable drawableLeft = null, drawableTop = null, drawableRight = null, // drawableBottom = null, drawableStart = null, drawableEnd = null; // boolean drawableDefined = false; // boolean drawableRelativeDefined = false; // // /* // * Look the appearance up without checking first if it exists because // * almost every TextView has one and it greatly simplifies the logic // * to be able to parse the appearance first and then let specific tags // * for this View override it. // */ // TypedArray a = v.getContext().obtainStyledAttributes(attrs, R.styleable.TextViewAppearance, defStyleAttr, defStyleRes); // TypedArray appearance = null; // int ap = a.getResourceId(R.styleable.TextViewAppearance_android_textAppearance, 0); // a.recycle(); // // if (ap != 0) // appearance = v.getContext().obtainStyledAttributes(ap, R.styleable.TextAppearance); // // if (appearance != null) { // int n = appearance.getIndexCount(); // for (int i = 0; i < n; i++) { // int attr = appearance.getIndex(i); // // if (attr == R.styleable.TextAppearance_android_textColorHighlight) { // v.setHighlightColor(appearance.getColor(attr, 0)); // // } else if (attr == R.styleable.TextAppearance_android_textColor) { // v.setTextColor(appearance.getColorStateList(attr)); // // } else if (attr == R.styleable.TextAppearance_android_textColorHint) { // v.setHintTextColor(appearance.getColorStateList(attr)); // // } else if (attr == R.styleable.TextAppearance_android_textColorLink) { // v.setLinkTextColor(appearance.getColorStateList(attr)); // // } else if (attr == R.styleable.TextAppearance_android_textSize) { // v.setTextSize(TypedValue.COMPLEX_UNIT_PX, appearance.getDimensionPixelSize(attr, 0)); // // } else if (attr == R.styleable.TextAppearance_android_typeface) { // typefaceIndex = appearance.getInt(attr, -1); // // } else if (attr == R.styleable.TextAppearance_android_fontFamily) { // fontFamily = appearance.getString(attr); // // } else if (attr == R.styleable.TextAppearance_tv_fontFamily) { // fontFamily = appearance.getString(attr); // // } else if (attr == R.styleable.TextAppearance_android_textStyle) { // styleIndex = appearance.getInt(attr, -1); // // } else if (attr == R.styleable.TextAppearance_android_textAllCaps) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) // v.setAllCaps(appearance.getBoolean(attr, false)); // // } else if (attr == R.styleable.TextAppearance_android_shadowColor) { // shadowColor = appearance.getInt(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_shadowDx) { // dx = appearance.getFloat(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_shadowDy) { // dy = appearance.getFloat(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_shadowRadius) { // r = appearance.getFloat(attr, 0); // // } else if (attr == R.styleable.TextAppearance_android_elegantTextHeight) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setElegantTextHeight(appearance.getBoolean(attr, false)); // // } else if (attr == R.styleable.TextAppearance_android_letterSpacing) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setLetterSpacing(appearance.getFloat(attr, 0)); // // } else if (attr == R.styleable.TextAppearance_android_fontFeatureSettings) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setFontFeatureSettings(appearance.getString(attr)); // // } // } // // appearance.recycle(); // } // // a = v.getContext().obtainStyledAttributes(attrs, R.styleable.TextView, defStyleAttr, defStyleRes); // // int n = a.getIndexCount(); // for (int i = 0; i < n; i++) { // int attr = a.getIndex(i); // // if (attr == R.styleable.TextView_android_drawableLeft) { // drawableLeft = a.getDrawable(attr); // drawableDefined = true; // // } else if (attr == R.styleable.TextView_android_drawableTop) { // drawableTop = a.getDrawable(attr); // drawableDefined = true; // // } else if (attr == R.styleable.TextView_android_drawableRight) { // drawableRight = a.getDrawable(attr); // drawableDefined = true; // // } else if (attr == R.styleable.TextView_android_drawableBottom) { // drawableBottom = a.getDrawable(attr); // drawableDefined = true; // // } else if (attr == R.styleable.TextView_android_drawableStart) { // drawableStart = a.getDrawable(attr); // drawableRelativeDefined = true; // // } else if (attr == R.styleable.TextView_android_drawableEnd) { // drawableEnd = a.getDrawable(attr); // drawableRelativeDefined = true; // // } else if (attr == R.styleable.TextView_android_drawablePadding) { // v.setCompoundDrawablePadding(a.getDimensionPixelSize(attr, 0)); // // } else if (attr == R.styleable.TextView_android_maxLines) { // v.setMaxLines(a.getInt(attr, -1)); // // } else if (attr == R.styleable.TextView_android_maxHeight) { // v.setMaxHeight(a.getDimensionPixelSize(attr, -1)); // // } else if (attr == R.styleable.TextView_android_lines) { // v.setLines(a.getInt(attr, -1)); // // } else if (attr == R.styleable.TextView_android_height) { // v.setHeight(a.getDimensionPixelSize(attr, -1)); // // } else if (attr == R.styleable.TextView_android_minLines) { // v.setMinLines(a.getInt(attr, -1)); // // } else if (attr == R.styleable.TextView_android_minHeight) { // v.setMinHeight(a.getDimensionPixelSize(attr, -1)); // // } else if (attr == R.styleable.TextView_android_maxEms) { // v.setMaxEms(a.getInt(attr, -1)); // // } else if (attr == R.styleable.TextView_android_maxWidth) { // v.setMaxWidth(a.getDimensionPixelSize(attr, -1)); // // } else if (attr == R.styleable.TextView_android_ems) { // v.setEms(a.getInt(attr, -1)); // // } else if (attr == R.styleable.TextView_android_width) { // v.setWidth(a.getDimensionPixelSize(attr, -1)); // // } else if (attr == R.styleable.TextView_android_minEms) { // v.setMinEms(a.getInt(attr, -1)); // // } else if (attr == R.styleable.TextView_android_minWidth) { // v.setMinWidth(a.getDimensionPixelSize(attr, -1)); // // } else if (attr == R.styleable.TextView_android_gravity) { // v.setGravity(a.getInt(attr, -1)); // // } else if (attr == R.styleable.TextView_android_scrollHorizontally) { // v.setHorizontallyScrolling(a.getBoolean(attr, false)); // // } else if (attr == R.styleable.TextView_android_includeFontPadding) { // v.setIncludeFontPadding(a.getBoolean(attr, true)); // // } else if (attr == R.styleable.TextView_android_cursorVisible) { // v.setCursorVisible(a.getBoolean(attr, true)); // // } else if (attr == R.styleable.TextView_android_textScaleX) { // v.setTextScaleX(a.getFloat(attr, 1.0f)); // // } else if (attr == R.styleable.TextView_android_shadowColor) { // shadowColor = a.getInt(attr, 0); // // } else if (attr == R.styleable.TextView_android_shadowDx) { // dx = a.getFloat(attr, 0); // // } else if (attr == R.styleable.TextView_android_shadowDy) { // dy = a.getFloat(attr, 0); // // } else if (attr == R.styleable.TextView_android_shadowRadius) { // r = a.getFloat(attr, 0); // // } else if (attr == R.styleable.TextView_android_textColorHighlight) { // v.setHighlightColor(a.getColor(attr, 0)); // // } else if (attr == R.styleable.TextView_android_textColor) { // v.setTextColor(a.getColorStateList(attr)); // // } else if (attr == R.styleable.TextView_android_textColorHint) { // v.setHintTextColor(a.getColorStateList(attr)); // // } else if (attr == R.styleable.TextView_android_textColorLink) { // v.setLinkTextColor(a.getColorStateList(attr)); // // } else if (attr == R.styleable.TextView_android_textSize) { // v.setTextSize(TypedValue.COMPLEX_UNIT_PX, a.getDimensionPixelSize(attr, 0)); // // } else if (attr == R.styleable.TextView_android_typeface) { // typefaceIndex = a.getInt(attr, -1); // // } else if (attr == R.styleable.TextView_android_textStyle) { // styleIndex = a.getInt(attr, -1); // // } else if (attr == R.styleable.TextView_android_fontFamily) { // fontFamily = a.getString(attr); // // } else if (attr == R.styleable.TextView_tv_fontFamily) { // fontFamily = a.getString(attr); // // } else if (attr == R.styleable.TextView_android_textAllCaps) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) // v.setAllCaps(a.getBoolean(attr, false)); // // } else if (attr == R.styleable.TextView_android_elegantTextHeight) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setElegantTextHeight(a.getBoolean(attr, false)); // // } else if (attr == R.styleable.TextView_android_letterSpacing) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setLetterSpacing(a.getFloat(attr, 0)); // // } else if (attr == R.styleable.TextView_android_fontFeatureSettings) { // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) // v.setFontFeatureSettings(a.getString(attr)); // // } // } // a.recycle(); // // if (shadowColor != 0) // v.setShadowLayer(r, dx, dy, shadowColor); // // if(drawableDefined) { // Drawable[] drawables = v.getCompoundDrawables(); // if (drawableStart != null) // drawables[0] = drawableStart; // else if (drawableLeft != null) // drawables[0] = drawableLeft; // if (drawableTop != null) // drawables[1] = drawableTop; // if (drawableEnd != null) // drawables[2] = drawableEnd; // else if (drawableRight != null) // drawables[2] = drawableRight; // if (drawableBottom != null) // drawables[3] = drawableBottom; // v.setCompoundDrawablesWithIntrinsicBounds(drawables[0], drawables[1], drawables[2], drawables[3]); // } // // if(drawableRelativeDefined && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ // Drawable[] drawables = v.getCompoundDrawablesRelative(); // if (drawableStart != null) // drawables[0] = drawableStart; // if (drawableEnd != null) // drawables[2] = drawableEnd; // v.setCompoundDrawablesRelativeWithIntrinsicBounds(drawables[0], drawables[1], drawables[2], drawables[3]); // } // // Typeface tf = null; // if (fontFamily != null) { // tf = TypefaceUtil.load(v.getContext(), fontFamily, styleIndex); // if (tf != null) // v.setTypeface(tf); // } // if(tf != null) { // switch (typefaceIndex) { // case 1: // tf = Typeface.SANS_SERIF; // break; // case 2: // tf = Typeface.SERIF; // break; // case 3: // tf = Typeface.MONOSPACE; // break; // } // v.setTypeface(tf, styleIndex); // } // // if(v instanceof AutoCompleteTextView) // applyStyle((AutoCompleteTextView)v, attrs, defStyleAttr, defStyleRes); // } // // /** // * Apply any AutoCompleteTextView style attributes to a view. // * @param v // * @param attrs // * @param defStyleAttr // * @param defStyleRes // */ // private static void applyStyle(AutoCompleteTextView v, AttributeSet attrs, int defStyleAttr, int defStyleRes){ // TypedArray a = v.getContext().obtainStyledAttributes(attrs, R.styleable.AutoCompleteTextView, defStyleAttr, defStyleRes); // // int n = a.getIndexCount(); // for (int i = 0; i < n; i++) { // int attr = a.getIndex(i); // // if(attr == R.styleable.AutoCompleteTextView_android_completionHint) // v.setCompletionHint(a.getString(attr)); // else if(attr == R.styleable.AutoCompleteTextView_android_completionThreshold) // v.setThreshold(a.getInteger(attr, 0)); // else if(attr == R.styleable.AutoCompleteTextView_android_dropDownAnchor) // v.setDropDownAnchor(a.getResourceId(attr, 0)); // else if(attr == R.styleable.AutoCompleteTextView_android_dropDownHeight) // v.setDropDownHeight(a.getLayoutDimension(attr, ViewGroup.LayoutParams.WRAP_CONTENT)); // else if(attr == R.styleable.AutoCompleteTextView_android_dropDownWidth) // v.setDropDownWidth(a.getLayoutDimension(attr, ViewGroup.LayoutParams.WRAP_CONTENT)); // else if(attr == R.styleable.AutoCompleteTextView_android_dropDownHorizontalOffset) // v.setDropDownHorizontalOffset(a.getDimensionPixelSize(attr, 0)); // else if(attr == R.styleable.AutoCompleteTextView_android_dropDownVerticalOffset) // v.setDropDownVerticalOffset(a.getDimensionPixelSize(attr, 0)); // else if(attr == R.styleable.AutoCompleteTextView_android_popupBackground) // v.setDropDownBackgroundDrawable(a.getDrawable(attr)); // } // a.recycle(); // } }