常用的一些基础工具类

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;
    }

}

时间: 2024-12-21 15:11:48

常用的一些基础工具类的相关文章

Android基础工具类重构系列一Toast

前言: 一直在考虑写一下Android实际项目中的一些总结,翻看CSDN博客,上一篇已经是一年多曾经. 本系列定位Android基础工具类重构.旨在记录实际项目中经经常使用到的一些工具类,比方Toast.Dialog.动画类,ImageLoader类等等.正在梳理,但发现梳理完再写预计黄花菜都凉了.所以改变策略,边写边梳理. 首先要写的就是这个Toast. 一.说明 作为Android系统提供的基类,Toast是最简单的提示消息类.特点悬浮.跨界面(Activity)特定时间内自己主动销毁. 二

常用cookie处理方法工具类

功能:cookie的添加.删除.获取值 1 import java.io.UnsupportedEncodingException; 2 import java.net.URLDecoder; 3 4 import javax.servlet.http.Cookie; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 8 /** 9 * 常用cook

前端设计师常用的一些基础工具素材合集

相信每个设计师浏览器的收藏夹都是自己的心头宝,里面收藏了很多好的工具和素材.有些时候在一些设计群里听到好多设计师在问有没有好一点的设计素材网站推荐,今天就给大家分享我在建站的过程中常用到的一些素材工具,素材包括:免费/版权图库.图标资源.色彩搭配.优秀网站欣赏,工具类包括: Web 技术教程.前端demo展示资源.前端框架.建站系统. 一.素材类 1.图片 其实国内对图片版权保护这块的意识不是很够,在免费的素材库和收费素材库都能找到同一张图片,但作者署名却都不一样.所以小编现在基本不用国内这些图

黑马程序员——Java基础工具类---Collections、Arrays、超级for循环、静态导入、方法可变参数

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- Collections 一.概述 Collections是对集合框架的一个工具类.它里边的方法都是静态的,不需要创建对象.并未封装特有数据. 在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二分查找,随机

Android 最常用的快速开发工具类

Android开发的工具类能很好的封装一些常用的操作,以后使用起来也非常方便,我把我经常使用的工具类分享给大家. FileCache: package com.pztuan.common.util; import java.io.File; import android.content.Context; public class FileCache { private File cacheDir; public FileCache(Context context) { // 判断外存SD卡挂载状

java基础---工具类

1.Object(上帝类/祖先类) Object是所有类的父类:可以是直接父类,也可以是间接父类 直接父类:如果一个类没有显示的extends关键字为显示指定父类,则该类默认继承Object父类. 间接父类:学生类继承了people类,people类默认继承Object类,这时候就为间接父类. Object类常用方法 equals():比较俩个对象的地址 getClass():返回运行时对象   ---百度了解 toString():字符串形式        ---百度了解 线程的 finali

Google Guava学习笔记——基础工具类Preconditions类的使用

Preconditions类是一组静态方法用来验证我们代码的状态.Preconditons类很重要,它能保证我们的代码按照我们期望的执行,如果不是我们期望的,我们会立即得到反馈是哪里出来问题,现在我们使用Preconditions来保证我们代码的行为,并且对调试也非常方便. 当然,你也可以自己写预处理的代码,就像下面一样: if (someObj == null) { throw new IllegalArgumentException(" someObj must not be null&qu

Google Guava学习笔记——基础工具类String处理类的使用

不管你喜欢何种编程语言,很多时候针对string编程的处理都是乏味而且爱出错误的,很多时候,我们需要从文件或是数据库中读取数据,或者根据需求重新格式化或排序字符串给用户显示.幸运的是,Guava提供了一些非常有用的类,来很容易的处理String的问题,这些类有: CharMatcher Charsets Strings 使用Charsets类 在Java平台,Java支持6种标准字符集,它经常出现在下面的代码中: byte[] bytes = someString.getBytes(); 但上面

Java常用的16个工具类

一. org.apache.commons.io.IOUtils closeQuietly:关闭一个IO流.socket.或者selector且不抛出异常,通常放在finally块 toString:转换IO流. Uri. byte[]为String copy:IO流数据复制,从输入流写到输出流中,最大支持2GB toByteArray:从输入流.URI获取byte[] write:把字节. 字符等写入输出流 toInputStream:把字符转换为输入流 readLines:从输入流中读取多行