您的位置:首页 > 其它

自己封装的一个工具类

2016-11-16 11:30 106 查看
工具类包含的方法:

1.dip到px的转换;

2.2.让代码运行到主进程的方法;

3.3.获取随机颜色的值的方法;

4.4.获取一个带背景颜色的圆角矩形的方法;

5.设置背景选择器的方法;

6.6.生成随机的不重复的id值的方法;

7.7.通过资源id获取资源图片的方法;

8.8.判断是否是主线程的方法;

public class UIUtil {

/**像素转换:

* @param dip 要转换的dip格式的数值;

* @return 转换后的px格式的数值

* */

public static int dip2px(int dip) {

// 通过GoogleApplication的静态方法获取上下文

Context context = MyApplication.getContext();

// 获取密度density

float density = context.getResources().getDisplayMetrics().density;

// dip*density+0.5

int px = (int) (dip * density + 0.5);

return px;

}

/**运行任务在主线程的方法:

* @param task 要执行到主线程的任务代码

* */

public static void runInMainThread(Runnable task){

//判断当前线程(android.os.Process.myTid)是否是主线程 若是,则直接调用task的run方法;task.run();

if (MyApplication.getMainThreadId() == android.os.Process.myTid()) {

task.run();

}else{

//否则 ,获取主线程handler,把task交给主线程post(task)

MyApplication.getMainHandler().post(task);

}

}

/**获取随机颜色的方法:没有黑色及白色

* */

public static int getRandomColor(){

int red = 10 + new Random().nextInt(240);

int green = 10 + new Random().nextInt(240);

int blue = 10 + new Random().nextInt(240);

int rgb = Color.rgb(red, green, blue);

return rgb;

}

/*获取随机大小的方法/

public static int getRandomSize(int min,int max){

int randomSize = min+new Random(max).nextInt();

return randomSize;

}

/**获取一个带背景颜色的圆角矩形的方法:

* 不设置边缘会有一些位置的bug出现

* @param rgb 颜色的值

* */

public static GradientDrawable getGradientDrawable(int rgb) {

//创建图形对象

GradientDrawable drawable = new GradientDrawable();

//定义图形类型为矩形

drawable.setGradientType(GradientDrawable.RECTANGLE);

//定义圆角大小

drawable.setCornerRadius(10.0f);

//定义图形的颜色

drawable.setColor(rgb);

//设置图形的边缘线的宽度和颜色

drawable.setStroke(1, rgb);

//返回图形对象

return drawable;

}

/**设置背景选择器的方法

* @param pressedDrawable 被点击时的背景颜色

* @param normalDrawable 普通状态时的背景颜色

* */

public static StateListDrawable getStateListDrawable(

GradientDrawable pressedDrawable, GradientDrawable normalDrawable) {

//创建选择器类对象

StateListDrawable drawable = new StateListDrawable();

//设置按下状态时的背景

drawable.addState(new int[]{android.R.attr.state_pressed}, pressedDrawable);

//设置默认状态时的背景

drawable.addState(new int[]{}, normalDrawable);

//返回选择器

return drawable;

}

//

private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);

/*生成随机的不重复的id值的方法/

public static int generateViewId() {

for (;;) {

final int result = sNextGeneratedId.get();

int newValue = result + 1;

if (newValue > 0x00FFFFFF)

newValue = 1;

if (sNextGeneratedId.compareAndSet(result, newValue)) {

return result;

}

}

}

/*通过资源id获取资源图片的方法/

public static Drawable getDrawable(int mDrawableForegroudResId) {

return MyApplication.getContext().getResources().getDrawable(mDrawableForegroudResId);

}

/*判断是否是主线程的方法/

public static boolean isInMainThread() {

//判断主线程的id与当前线程的id是否一致

return MyApplication.getMainThreadId() == android.os.Process.myTid();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: