// Path: xframe/src/main/java/com/youth/xframe/XFrame.java
// public class XFrame {
//     private static Context context;
//     public static int screenHeight;
//     public static int screenWidth;
// 
//     // #log
//     public static String tag = "XFrame";
//     public static boolean isDebug = true;
// 
// 
//     public static void init(Context context) {
//         XFrame.context = context;
//         screenHeight = XDensityUtils.getScreenHeight();
//         screenWidth = XDensityUtils.getScreenWidth();
//     }
// 
//     public static XLogConfig initXLog() {
//         return XLog.init();
//     }
// 
//     public static XLoadingViewConfig initXLoadingView() {
//         return XLoadingView.init();
//     }
// 
//     public static void initXHttp(IHttpEngine httpEngine) {
//         XHttp.init(httpEngine);
//     }
// 
//     public static void initXImageLoader(ImageLoader loader) {
//         XImage.init(loader);
//     }
// 
//     public static Context getContext() {
//         synchronized (XFrame.class) {
//             if (XFrame.context == null)
//                 throw new NullPointerException("Call XFrame.init(context) within your Application onCreate() method." +
//                         "Or extends XApplication");
//             return XFrame.context.getApplicationContext();
//         }
//     }
// 
//     public static Resources getResources() {
//         return XFrame.getContext().getResources();
//     }
// 
//     public static String getString(@StringRes int id) {
//         return getResources().getString(id);
//     }
// 
//     public static Resources.Theme getTheme() {
//         return XFrame.getContext().getTheme();
//     }
// 
//     public static AssetManager getAssets() {
//         return XFrame.getContext().getAssets();
//     }
// 
//     public static Drawable getDrawable( @DrawableRes int id) {
//         return XOutdatedUtils.getDrawable(id);
//     }
// 
//     public static int getColor( @ColorRes int id) {
//         return XOutdatedUtils.getColor(id);
//     }
// 
//     public static Object getSystemService(String name){
//         return XFrame.getContext().getSystemService(name);
//     }
// 
//     public static Configuration getConfiguration() {
//         return XFrame.getResources().getConfiguration();
//     }
// 
//     public static DisplayMetrics getDisplayMetrics() {
//         return XFrame.getResources().getDisplayMetrics();
//     }
// 
// }


import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import com.youth.xframe.XFrame;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
package com.youth.xframe.utils;




/**
 * 屏幕、尺寸、View相关工具类
 */
public class XDensityUtils {

    private XDensityUtils() {
        throw new UnsupportedOperationException("u can't instantiate me...");
    }

    /**
     * dp转px
     *
     * @param dpValue dp值
     * @return px值
     */
    public static int dp2px(float dpValue) {
        final float scale = XFrame.getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * px转dp
     *
     * @param pxValue px值
     * @return dp值
     */
    public static int px2dp( float pxValue) {
        final float scale = XFrame.getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * sp转px
     *
     * @param spValue sp值
     * @return px值
     */
    public static int sp2px(float spValue) {
        final float fontScale = XFrame.getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }

    /**
     * px转sp
     *
     * @param pxValue px值
     * @return sp值
     */
    public static int px2sp( float pxValue) {
// Path: xframe/src/main/java/com/youth/xframe/XFrame.java
// public class XFrame {
//     private static Context context;
//     public static int screenHeight;
//     public static int screenWidth;
// 
//     // #log
//     public static String tag = "XFrame";
//     public static boolean isDebug = true;
// 
// 
//     public static void init(Context context) {
//         XFrame.context = context;
//         screenHeight = XDensityUtils.getScreenHeight();
//         screenWidth = XDensityUtils.getScreenWidth();
//     }
// 
//     public static XLogConfig initXLog() {
//         return XLog.init();
//     }
// 
//     public static XLoadingViewConfig initXLoadingView() {
//         return XLoadingView.init();
//     }
// 
//     public static void initXHttp(IHttpEngine httpEngine) {
//         XHttp.init(httpEngine);
//     }
// 
//     public static void initXImageLoader(ImageLoader loader) {
//         XImage.init(loader);
//     }
// 
//     public static Context getContext() {
//         synchronized (XFrame.class) {
//             if (XFrame.context == null)
//                 throw new NullPointerException("Call XFrame.init(context) within your Application onCreate() method." +
//                         "Or extends XApplication");
//             return XFrame.context.getApplicationContext();
//         }
//     }
// 
//     public static Resources getResources() {
//         return XFrame.getContext().getResources();
//     }
// 
//     public static String getString(@StringRes int id) {
//         return getResources().getString(id);
//     }
// 
//     public static Resources.Theme getTheme() {
//         return XFrame.getContext().getTheme();
//     }
// 
//     public static AssetManager getAssets() {
//         return XFrame.getContext().getAssets();
//     }
// 
//     public static Drawable getDrawable( @DrawableRes int id) {
//         return XOutdatedUtils.getDrawable(id);
//     }
// 
//     public static int getColor( @ColorRes int id) {
//         return XOutdatedUtils.getColor(id);
//     }
// 
//     public static Object getSystemService(String name){
//         return XFrame.getContext().getSystemService(name);
//     }
// 
//     public static Configuration getConfiguration() {
//         return XFrame.getResources().getConfiguration();
//     }
// 
//     public static DisplayMetrics getDisplayMetrics() {
//         return XFrame.getResources().getDisplayMetrics();
//     }
// 
// }


// Path: xframe/src/main/java/com/youth/xframe/utils/XDensityUtils.java
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import com.youth.xframe.XFrame;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

package com.youth.xframe.utils;




/**
 * 屏幕、尺寸、View相关工具类
 */
public class XDensityUtils {

    private XDensityUtils() {
        throw new UnsupportedOperationException("u can't instantiate me...");
    }

    /**
     * dp转px
     *
     * @param dpValue dp值
     * @return px值
     */
    public static int dp2px(float dpValue) {
        final float scale = XFrame.getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

    /**
     * px转dp
     *
     * @param pxValue px值
     * @return dp值
     */
    public static int px2dp( float pxValue) {
        final float scale = XFrame.getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }

    /**
     * sp转px
     *
     * @param spValue sp值
     * @return px值
     */
    public static int sp2px(float spValue) {
        final float fontScale = XFrame.getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }

    /**
     * px转sp
     *
     * @param pxValue px值
     * @return sp值
     */
    public static int px2sp( float pxValue) {
        final float fontScale = XFrame.getDisplayMetrics().scaledDensity;