自己写的工具类


自己写了一个第三方工具类,避免自己每次写项目都要自己再copy一次这个工具类。

项目地址

https://github.com/greenYears/zmq-commons-utils

使用方式
Maven引用
<dependency>
    <groupId>com.github.greenyears</groupId>
    <artifactId>zmq-commons-utils</artifactId>
    <version>1.0.1</version>
</dependency>
Gradle引用
compile group: 'com.github.greenyears', name: 'zmq-commons-utils', version: '1.0.1'
简介
异常
  1. ApiException
    提供统一封装的api异常,各个业务可以根据自己的业务需求进行捕获处理。
工具类
  1. AssertUtils
    断言类,可以针对常见的判断表达式进行断言,抛出ApiException以及自定义message

  2. BigDecimalUtils
    数据处理类。

  3. CalculateUtils
    使用Java8提供的方法,处理日期的工具类。

  4. AesUtils
    提供Aes加密解密的工具类。

发布了7 篇原创文章 · 获赞 0 · 访问量 1461
展开阅读全文

安卓关于UIUtils工具的使用

07-21

小弟最近项目用到了一个UIUtils的UI工具类,请问这个类是要自己进行添加的吗? 如果是的话,我找了几篇大神写的帖子,其中有个地方不是很懂:(代码如下) /** * @return 应用的上下文 */ public static Context getContext() { return xxxApplication.getInstance(); } /** * 获取资源对象 */ public static Resources getResources() { return getContext().getResources(); } /** * @param id * @return 资源文件字符串 */ public static String getString(int id) { return getResources().getString(id); } /** * @param id * @return 资源文件字符串数组 */ public static String[] getStringArray(int id) { return getResources().getStringArray(id); } /** * @param id * @return 资源文件图片 */ public static Drawable getDrawable(int id) { return ContextCompat.getDrawable(getContext(), id); } /** * @param id * @return 资源文件颜色 */ public static int getColor(int id) { return ContextCompat.getColor(getContext(), id); } /** * @param id * @return 颜色的状态选择器 */ public static ColorStateList getColorStateList(int id) { return ContextCompat.getColorStateList(getContext(), id); } /** * @param id * @return 尺寸 */ public static int getDimen(int id) { // 返回具体像素值 return getResources().getDimensionPixelSize(id); } /** * dp ->px * * @param dp * @return */ public static int dp2px(float dp) { float density = getResources().getDisplayMetrics().density; return (int) (dp * density + 0.5f); } /** * px ->dp * * @param px * @return */ public static float px2dp(int px) { float density = getResources().getDisplayMetrics().density; return px / density; } /** * 加载布局文件 * * @param id * @return */ public static View inflate(int id) { return View.inflate(getContext(), id, null); } /** * 把自身从父View中移除 * * @param view */ public static void removeSelfFromParent(View view) { if (view != null) { ViewParent parent = view.getParent(); if (parent != null && parent instanceof ViewGroup) { ViewGroup group = (ViewGroup) parent; group.removeView(view); } } } /** * 请求View树重新布局,用于解决中层View有布局状态而导致上层View状态断裂 * * @param view * @param isAll */ public static void requestLayoutParent(View view, boolean isAll) { ViewParent parent = view.getParent(); while (parent != null && parent instanceof View) { if (!parent.isLayoutRequested()) { parent.requestLayout(); if (!isAll) { break; } } parent = parent.getParent(); } } /** * 判断触点是否落在该View上 * * @param ev * @param v * @return */ public static boolean isTouchInView(MotionEvent ev, View v) { int[] vLoc = new int[2]; v.getLocationOnScreen(vLoc); float motionX = ev.getRawX(); float motionY = ev.getRawY(); return motionX >= vLoc[0] && motionX <= (vLoc[0] + v.getWidth()) && motionY >= vLoc[1] && motionY <= (vLoc[1] + v.getHeight()); } /** * findViewById的泛型封装,减少强转代码 * * @param layout * @param id * @param <T> * @return */ public static <T extends View> T findViewById(View layout, int id) { return (T) layout.findViewById(id); } /** * *获取屏幕的比例 * * @param context *@return */ public static float getScaledDensity(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); float value = dm.scaledDensity; return value; } /** * 获取控件的高度,如果获取的高度为0,则重新计算尺寸后再返回高度 * * @param view * @return */ public static int getViewMeasuredHeight(View view) { calcViewMeasure(view); return view.getMeasuredHeight(); } /** * 获取控件的宽度,如果获取的宽度为0,则重新计算尺寸后再返回宽度 * * @param view * @return */ public static int getViewMeasuredWidth(View view) { calcViewMeasure(view); return view.getMeasuredWidth(); } /** * 测量控件的尺寸 * * @param view */ public static void calcViewMeasure(View view) { int width = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int expandSpec = View.MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, View.MeasureSpec.AT_MOST); view.measure(width, expandSpec); } /** * 设置textview指定文字为某一颜色 * * @param content 显示的文字 * @param color 需要转换成的颜色值 * @param start 需要变色文字开始位置 * @param end 需要变色文字结束位置 */ public static SpannableStringBuilder changeTextColor(String content, int color, int start, int end) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(content); spannableStringBuilder.setSpan(new ForegroundColorSpan(color), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableStringBuilder; } 上面在一开始获取上下文时有一个 return xxxApplication.getInstance(); 这个xxxApplication是指我当前应用的名字吗,应该怎么知道,我已经把握觉得可能的名字打进去了都报红 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览