package com.android.pc.util; import java.util.HashMap; import android.app.Activity; import android.content.Context; import android.content.res.Configuration; import android.graphics.Bitmap; import android.os.ResultReceiver; import android.view.Display; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.LinearInterpolator; import android.view.animation.RotateAnimation; import android.view.inputmethod.InputMethodManager; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.Spinner; /** * UI工具类 * * @author gdpancheng@gmail.com 2013-10-31 上午10:47:02 */ public class Handler_Ui { /** * 设置选中某一些 下拉框 * * @author gdpancheng@gmail.com 2013-10-12 下午3:47:51 * @param spinner * @param selection * @return void */ public static void setSelection(Spinner spinner, Object selection) { setSelection(spinner, selection.toString()); } /** * 设置选中某一些 下拉框 * * @author gdpancheng@gmail.com 2013-10-12 下午3:47:34 * @param spinner * @param selection * @return void */ public static void setSelection(Spinner spinner, String selection) { final int count = spinner.getCount(); for (int i = 0; i < count; i++) { String item = spinner.getItemAtPosition(i).toString(); if (item.equalsIgnoreCase(selection)) { spinner.setSelection(i); } } } /** * 隐藏软键盘 * * @author gdpancheng@gmail.com 2013-10-12 下午3:46:33 * @param view * @return void */ public static void hideSoftKeyboard(View view) { InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } /** * 显示软键盘 * * @author gdpancheng@gmail.com 2013-10-12 下午3:46:44 * @param view * @return void */ public static void showSoftkeyboard(View view) { showSoftkeyboard(view, null); } /** * 显示软键盘 * * @author gdpancheng@gmail.com 2013-10-12 下午3:47:19 * @param view * @param resultReceiver * @return void */ public static void showSoftkeyboard(View view, ResultReceiver resultReceiver) { Configuration config = view.getContext().getResources().getConfiguration(); if (config.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) { InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (resultReceiver != null) { imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT, resultReceiver); } else { imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); } } } public static void imageLLViewReset(View imageView, int bitmapW, int bitmapH, boolean isFull) { LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) imageView.getLayoutParams(); HashMap<String, Integer> data = Handler_System.getDisplayMetrics(); int width = data.get(Handler_System.systemWidth);// 320 int height = data.get(Handler_System.systemHeight);// 480 if (isFull) { if (width > height) { layoutParams.width = (int) (bitmapW * 1.00f / bitmapH * height); layoutParams.height = height; } else { layoutParams.width = width; layoutParams.height = (int) (bitmapH * 1.00f / bitmapW * width); } } else { if (bitmapW > width) { layoutParams.width = width; layoutParams.height = (int) (width * 1.00f / bitmapW * bitmapH); } else { layoutParams.width = bitmapW; layoutParams.height = bitmapH; } } imageView.setLayoutParams(layoutParams); } public static void imageRLViewReset(View imageView, int bitmapW, int bitmapH, boolean isFull) { RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) imageView.getLayoutParams(); HashMap<String, Integer> data = Handler_System.getDisplayMetrics(); int width = data.get(Handler_System.systemWidth); int height = data.get(Handler_System.systemHeight); if (isFull) { if (width > height) { layoutParams.width = (int) (bitmapW * 1.00f / bitmapH * height); layoutParams.height = height; } else { layoutParams.width = width; layoutParams.height = (int) (bitmapH * 1.00f / bitmapW * width); } } else { if (bitmapW > width) { layoutParams.width = width; layoutParams.height = (int) (width * 1.00f / bitmapW * bitmapH); } else { layoutParams.width = bitmapW; layoutParams.height = bitmapH; } } imageView.setLayoutParams(layoutParams); } public static void imageFLViewReset(View imageView, int bitmapW, int bitmapH, boolean isFull) { FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) imageView.getLayoutParams(); HashMap<String, Integer> data = Handler_System.getDisplayMetrics(); int width = data.get(Handler_System.systemWidth); int height = data.get(Handler_System.systemHeight); if (isFull) { if (width > height) { layoutParams.width = (int) (bitmapW * 1.00f / bitmapH * height); layoutParams.height = height; } else { layoutParams.width = width; layoutParams.height = (int) (bitmapH * 1.00f / bitmapW * width); } } else { if (bitmapW > width) { layoutParams.width = width; layoutParams.height = (int) (width * 1.00f / bitmapW * bitmapH); } else { layoutParams.width = bitmapW; layoutParams.height = bitmapH; } } imageView.setLayoutParams(layoutParams); } public static void resetRL(View... view) { float rote = Handler_System.getWidthRoate(); if (view == null || rote == 1) { return; } for (View view2 : view) { RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view2.getLayoutParams(); layoutParams.leftMargin = (int) (layoutParams.leftMargin * rote); layoutParams.rightMargin = (int) (layoutParams.rightMargin * rote); layoutParams.topMargin = (int) (layoutParams.topMargin * rote); layoutParams.bottomMargin = (int) (layoutParams.bottomMargin * rote); view2.setLayoutParams(layoutParams); } } /** * 根据分辨率设置透明按钮的大小 * * @author gdpancheng@gmail.com 2013-7-29 下午5:12:27 * @param view * @return void */ public static void resetRLBack(View... view) { float rote = Handler_System.getWidthRoate(); if (view == null || rote == 1) { return; } for (View view2 : view) { RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view2.getLayoutParams(); layoutParams.height = (int) (layoutParams.height * rote); layoutParams.width = (int) (layoutParams.width * rote); view2.setLayoutParams(layoutParams); } } public static void resetLL(View... view) { float rote = Handler_System.getWidthRoate(); if (view == null || rote == 1) { return; } for (View view2 : view) { LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) view2.getLayoutParams(); layoutParams.leftMargin = (int) (layoutParams.leftMargin * rote); layoutParams.rightMargin = (int) (layoutParams.rightMargin * rote); layoutParams.topMargin = (int) (layoutParams.topMargin * rote); layoutParams.bottomMargin = (int) (layoutParams.bottomMargin * rote); view2.setLayoutParams(layoutParams); } } /** * 根据分辨率设置透明按钮的大小 * * @author gdpancheng@gmail.com 2013-7-29 下午5:12:27 * @param view * @return void */ public static void resetLLBack(View... view) { float rote = Handler_System.getWidthRoate(); if (view == null || rote == 1) { return; } for (View view2 : view) { LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) view2.getLayoutParams(); layoutParams.height = (int) (layoutParams.height * rote); layoutParams.width = (int) (layoutParams.width * rote); view2.setLayoutParams(layoutParams); } } public static void resetFL(View... view) { float rote = Handler_System.getWidthRoate(); if (view == null || rote == 1) { return; } for (View view2 : view) { FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) view2.getLayoutParams(); layoutParams.leftMargin = (int) (layoutParams.leftMargin * rote); layoutParams.rightMargin = (int) (layoutParams.rightMargin * rote); layoutParams.topMargin = (int) (layoutParams.topMargin * rote); layoutParams.bottomMargin = (int) (layoutParams.bottomMargin * rote); view2.setLayoutParams(layoutParams); } } /** * 根据分辨率设置透明按钮的大小 * * @author gdpancheng@gmail.com 2013-7-29 下午5:12:27 * @param view * @return void */ public static void resetFLBack(View... view) { float rote = Handler_System.getWidthRoate(); if (view == null || rote == 1) { return; } for (View view2 : view) { FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) view2.getLayoutParams(); layoutParams.height = (int) (layoutParams.height * rote); layoutParams.width = (int) (layoutParams.width * rote); view2.setLayoutParams(layoutParams); } } /** * 截屏 * * @author gdpancheng@gmail.com 2013-10-26 下午2:39:01 * @param activity * @return Bitmap */ public static Bitmap shot(Activity activity) { View view = activity.getWindow().getDecorView(); Display display = activity.getWindowManager().getDefaultDisplay(); view.layout(0, 0, display.getWidth(), display.getHeight()); // 允许当前窗口保存缓存信息,这样getDrawingCache()方法才会返回一个Bitmap view.setDrawingCacheEnabled(true); Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache()); view.setDrawingCacheEnabled(false); return bmp; } /** * 代码实现旋转的菊花效果 * * @author gdpancheng@gmail.com 2014-2-21 下午5:09:58 * @param imageView * 需要旋转的图片 * @param drawable * 旋转菊花 * @return void */ public static void startAnim(ImageView imageView, int drawable) { try { imageView.setScaleType(ImageView.ScaleType.CENTER); imageView.setImageResource(drawable); AnimationSet animationSet = new AnimationSet(false); RotateAnimation rotateAnimation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotateAnimation.setDuration(2000); rotateAnimation.setInterpolator(new LinearInterpolator()); rotateAnimation.setRepeatMode(Animation.RESTART); rotateAnimation.setRepeatCount(Animation.INFINITE); animationSet.addAnimation(rotateAnimation); imageView.setAnimation(animationSet); } catch (Exception e) { } } /** * 停止自定义菊花的旋转 * * @author gdpancheng@gmail.com 2014-2-21 下午5:10:40 * @param imageView * @return void */ public static void stopAnim(ImageView imageView) { try { imageView.clearAnimation(); imageView.setImageBitmap(null); } catch (Exception e) { } } }