Android-UIUtils-工具類


UIUtils工具類,主要是處理和Activity有關,和界面顯示層有關的公共方法:

 

package common.library.utils;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.SpannedString;
import android.text.style.AbsoluteSizeSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author Liudeli
 * @Describe:所有與UI相關操縱的工具類
 */
public class UIUtils {

    private static final String TAG = UIUtils.class.getSimpleName();

    /**
     * 通過ID獲取顏色值
     * @param colorId
     * @return
     */
    public static int getColor(Context mContext, int colorId) {
        return mContext.getResources().getColor(colorId);
    }

    /**
     * 通過ID獲取View
     * @param layoutId
     * @return
     */
    public static View getXmlVIew(Context mContext, int layoutId) {
        return View.inflate(mContext, layoutId, null);
    }

    /**
     * 通過ID獲取 View Item 布局的View
     * @param mContext
     * @param layoutId
     * @return
     */
    public static View getItemView(Context mContext, int layoutId) {
        return LayoutInflater.from(mContext).inflate(layoutId, null);
    }

    /**
     * dp轉換px
     * @param dp
     * @return
     */
    public static int dp2px(Context mContext, int dp) {
        float density = mContext.getResources().getDisplayMetrics().density;
        return (int) (dp*density+0.5);
    }

    /**
     * px轉換dp
     * @param px
     * @return
     */
    public static int px2dp(Context mContext, int px) {
        float density = mContext.getResources().getDisplayMetrics().density;
        return (int) (px/density+0.5);
    }

    /**
     * 通過arrayId獲取string.xml里面指定的arrayId字符串數組
     * @param arrayId
     * @return
     */
    public static String[] getStringArray(Context mContext, int arrayId) {
        return mContext.getResources().getStringArray(arrayId);
    }

    /**
     * 用於跳轉Activity
     * @param cls
     */
    public static void startActivity(Activity activity, Class<?> cls) {
        activity.startActivity(new Intent(activity, cls));
    }

    /**
     * 用於ForResult方式跳轉Activity
     * @param activity
     * @param cls
     * @param requestCode
     */
    public static void startActivityForResult(Activity activity, Class<?> cls, int requestCode) {
        activity.startActivityForResult(new Intent(activity, cls), requestCode);
    }

    /**
     * 待參數的方式跳轉Activity
     * @param activity
     * @param cls
     * @param params
     * @param <T>
     */
    public static <T extends String> void startActivityForIntentParam(Activity activity, Class<?> cls, Map<String, T> params) {
        Intent intent  = new Intent(activity, cls);
        for (Map.Entry<String, T> entry : params.entrySet()) {
            intent.putExtra(entry.getKey(), entry.getValue());
        }
        activity.startActivity(intent);
    }

    /**
     * 獲取其他Activity傳過來的參數,轉成Map集合
     * @param activity
     * @param params
     * @return
     */
    public static Map receiveForIntentParam(Activity activity, String ... params) {
        Intent intent = activity.getIntent();
        Map<String, String> mMap = new HashMap<>();
        for (int i = 0; i<params.length; i++) {
            mMap.put(params[i], intent.getStringExtra(params[i]));
        }
        return mMap.size()==0?null:mMap;
    }

    /**
     * 設置EditText的hint字體大小
     * @param editText
     * @param dpSize
     * @param textString
     */
    public static void setEditTextHint(EditText editText, int dpSize,String textString) {
        SpannableString ss =  new SpannableString(textString);
        AbsoluteSizeSpan ass = new AbsoluteSizeSpan(dpSize, true);
        ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_USER);
        editText.setHint(new SpannedString(ss));
    }

    /**
     * 設置EditText的hint顏色與字體大小
     * @param editText
     * @param color
     * @param dpSize
     * @param textString
     */
    public static void setEditTextHint(EditText editText, int color, int dpSize,String textString) {
        SpannableString ss =  new SpannableString(textString);
        AbsoluteSizeSpan ass = new AbsoluteSizeSpan(dpSize, true);
        editText.setHintTextColor(color);
        ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_USER);
        editText.setHint(new SpannedString(ss));
    }

    /**
     * 設置EditText的hint顏色與字體大小
     * @param editText
     * @param color
     * @param dpSize
     * @param textString
     * @param isDip
     */
    public static void setEditTextHint(EditText editText, int color, int dpSize,String textString, boolean isDip) {
        SpannableString ss =  new SpannableString(textString);
        AbsoluteSizeSpan ass = new AbsoluteSizeSpan(dpSize, isDip);
        editText.setHintTextColor(color);
        ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
        editText.setHint(new SpannedString(ss));
    }

    /**
     * Java代碼設置控件大小,這個方法沒有什么卵用
     * @param view  控件
     * @param width 寬度,單位:像素
     * @param height 高度,單位:像素
     */
    public static void setViewSize(View view,int width,int height){
        ViewGroup.LayoutParams params = view.getLayoutParams();
        params.width = width;
        params.height = height;
        view.setLayoutParams(params);
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM