常用的一些基础工具类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用的一些基础工具类相关的知识,希望对你有一定的参考价值。

public class UiUtils {
    
    public static Context getContext(){
        return MyApplication.getContext();
    }
    
    public static Handler getMainThreadHandler() {
        return MyApplication.getHandler();
    }
    
    public static int getMainThreadId() {
        return MyApplication.getMainThreadId();
    }
    public static String[] getStringArray(int resId) {
        return getContext().getResources().getStringArray(resId);
    }

    // 获取drawable
    public static Drawable getDrawable(int resId) {
        return getContext().getResources().getDrawable(resId);
    }

    // 获取color的值
    public static int getColor(int resId) {
        return getContext().getResources().getColor(resId);
    }

    // 获取颜色的状态选择器
    public static ColorStateList getColorStateList(int resId) {
        return getContext().getResources().getColorStateList(resId);
    }

    // 获取dimen下定义的值
    public static int getDimen(int resId) {
        return getContext().getResources().getDimensionPixelSize(resId);
    }

    // dp--px
    public static int dp2px(int dp) {
        // 1、获取屏幕密度
        float density = getContext().getResources().getDisplayMetrics().density;
        // 2、进行乘法操作
        return (int) (dp * density + 0.5);
    }

    // px--dp
    public static int px2dp(int px) {
        // 1、获取屏幕密度
        float density = getContext().getResources().getDisplayMetrics().density;
        // 2、进行除法操作
        return (int) (px / density + 0.5);
    }

    // 判断当前线程是否处于主线程
    public static boolean isRunOnUiThread() {
        // 1、获取当前线程的线程id
        int currentThreadId = android.os.Process.myTid();
        // 2、获取主线程的线程id
        int mainThreadId = getMainThreadId();
        // 3、比较
        return currentThreadId == mainThreadId;
    }

    // 保证传递进来的r一定是在主线程中运行
    public static void runOnUiThread(Runnable r) {
        if (isRunOnUiThread()) {
            r.run();
            // new Thread(r).start();//此时启动了子线程
        } else {
            getMainThreadHandler().post(r);// 将r丢到了主线程的消息队列当中
        }
    }
    
    public static View inflate(int resId) {
        View view = View.inflate(getContext(), resId, null);
        return view;
    }

}

以上是关于常用的一些基础工具类的主要内容,如果未能解决你的问题,请参考以下文章

Java基础学习总结(193)—— JUC 常用并发工具类总结

java基础思维大图六:常用工具类

Java基础-常用工具类

Java基础工具_常用类——日期类

JAVA基础——Arrays工具类十大常用方法

Java基础工具_常用类——数学相关类