UIUtils工具类,主要是处理和Activity有关,和界面显示层有关的公共方法:

package common.library.utils;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.SpannedString;
import android.text.style.AbsoluteSizeSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText; import java.util.HashMap;
import java.util.Map; /**
* @Author Liudeli
* @Describe:所有与UI相关操纵的工具类
*/
public class UIUtils { private static final String TAG = UIUtils.class.getSimpleName(); /**
* 通过ID获取颜色值
* @param colorId
* @return
*/
public static int getColor(Context mContext, int colorId) {
return mContext.getResources().getColor(colorId);
} /**
* 通过ID获取View
* @param layoutId
* @return
*/
public static View getXmlVIew(Context mContext, int layoutId) {
return View.inflate(mContext, layoutId, null);
} /**
* 通过ID获取 View Item 布局的View
* @param mContext
* @param layoutId
* @return
*/
public static View getItemView(Context mContext, int layoutId) {
return LayoutInflater.from(mContext).inflate(layoutId, null);
} /**
* dp转换px
* @param dp
* @return
*/
public static int dp2px(Context mContext, int dp) {
float density = mContext.getResources().getDisplayMetrics().density;
return (int) (dp*density+0.5);
} /**
* px转换dp
* @param px
* @return
*/
public static int px2dp(Context mContext, int px) {
float density = mContext.getResources().getDisplayMetrics().density;
return (int) (px/density+0.5);
} /**
* 通过arrayId获取string.xml里面指定的arrayId字符串数组
* @param arrayId
* @return
*/
public static String[] getStringArray(Context mContext, int arrayId) {
return mContext.getResources().getStringArray(arrayId);
} /**
* 用于跳转Activity
* @param cls
*/
public static void startActivity(Activity activity, Class<?> cls) {
activity.startActivity(new Intent(activity, cls));
} /**
* 用于ForResult方式跳转Activity
* @param activity
* @param cls
* @param requestCode
*/
public static void startActivityForResult(Activity activity, Class<?> cls, int requestCode) {
activity.startActivityForResult(new Intent(activity, cls), requestCode);
} /**
* 待参数的方式跳转Activity
* @param activity
* @param cls
* @param params
* @param <T>
*/
public static <T extends String> void startActivityForIntentParam(Activity activity, Class<?> cls, Map<String, T> params) {
Intent intent = new Intent(activity, cls);
for (Map.Entry<String, T> entry : params.entrySet()) {
intent.putExtra(entry.getKey(), entry.getValue());
}
activity.startActivity(intent);
} /**
* 获取其他Activity传过来的参数,转成Map集合
* @param activity
* @param params
* @return
*/
public static Map receiveForIntentParam(Activity activity, String ... params) {
Intent intent = activity.getIntent();
Map<String, String> mMap = new HashMap<>();
for (int i = 0; i<params.length; i++) {
mMap.put(params[i], intent.getStringExtra(params[i]));
}
return mMap.size()==0?null:mMap;
} /**
* 设置EditText的hint字体大小
* @param editText
* @param dpSize
* @param textString
*/
public static void setEditTextHint(EditText editText, int dpSize,String textString) {
SpannableString ss = new SpannableString(textString);
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(dpSize, true);
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_USER);
editText.setHint(new SpannedString(ss));
} /**
* 设置EditText的hint颜色与字体大小
* @param editText
* @param color
* @param dpSize
* @param textString
*/
public static void setEditTextHint(EditText editText, int color, int dpSize,String textString) {
SpannableString ss = new SpannableString(textString);
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(dpSize, true);
editText.setHintTextColor(color);
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_USER);
editText.setHint(new SpannedString(ss));
} /**
* 设置EditText的hint颜色与字体大小
* @param editText
* @param color
* @param dpSize
* @param textString
* @param isDip
*/
public static void setEditTextHint(EditText editText, int color, int dpSize,String textString, boolean isDip) {
SpannableString ss = new SpannableString(textString);
AbsoluteSizeSpan ass = new AbsoluteSizeSpan(dpSize, isDip);
editText.setHintTextColor(color);
ss.setSpan(ass, 0, ss.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.setHint(new SpannedString(ss));
} /**
* Java代码设置控件大小,这个方法没有什么卵用
* @param view 控件
* @param width 宽度,单位:像素
* @param height 高度,单位:像素
*/
public static void setViewSize(View view,int width,int height){
ViewGroup.LayoutParams params = view.getLayoutParams();
params.width = width;
params.height = height;
view.setLayoutParams(params);
} }

Android-UIUtils-工具类的更多相关文章

  1. 53. Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  2. Android 常见工具类封装

    1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...

  3. 【转】Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefe ...

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

    前言: 一直在考虑写一下Android实际项目中的一些总结,翻看CSDN博客,上一篇已经是一年多曾经. 本系列定位Android基础工具类重构.旨在记录实际项目中经经常使用到的一些工具类,比方Toas ...

  5. (转载)android 一些工具类汇总

    android 一些工具类汇总 作者:曾田生z 字体:[增加 减小] 类型:转载 时间:2016-08-14我要评论 本文给大家汇总介绍了一些常用的Android工具类,非常的简单实用,有需要的小伙伴 ...

  6. 随笔分类 - Android之工具类

    Android之文件搜索工具类 /** * @detail 搜索sdcard文件 * @param 需要进行文件搜索的目录 * @param 过滤搜索文件类型 */ private void sear ...

  7. Android 系统工具类SystemUtils

    包含的功能有: 获取系统中所有APP应用.获取用户安装的APP应用.根据包名和Activity启动类查询应用信息.跳转到WIFI设置.WIFI网络开关.移动网络开关.GPS开关 当前若关则打开 当前若 ...

  8. Android Sqlite 工具类封装

    鉴于经常使用 Sqlite 数据库做数据持久化处理,进行了一点封装,方便使用. 该封装类主要支持一下功能 支持多用户数据储存 支持 Sqlite数据库升级 支持传入 Sql 语句建表 支持 SQLit ...

  9. Android 常用工具类之SPUtil,可以修改默认sp文件的路径

    参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...

  10. Android常见工具类封装

    MD5加密 import android.annotation.SuppressLint; import java.security.MessageDigest; public class MD5 { ...

随机推荐

  1. JWPlayer快速入门指南(中文)

    将JW Player嵌入到网页中非常的简单,只需要进行如下3个步骤: 1.解压mediaplayer-viral.zip文件,将jwplayer.js和player.swf文件拷贝到工程中: 2.在页 ...

  2. 学习笔记之C++入门到精通(名师教学·手把手教会)【职坐标】_腾讯课堂

    C++入门到精通(名师教学·手把手教会)[职坐标]_腾讯课堂 https://ke.qq.com/course/101465#term_id=100105503 https://github.com/ ...

  3. ACM刷题踩坑记录

    2017-12-26: 1.再次被写法坑了好长一会,调了半天的bug,还是没找出来.最后,发现,又坑在这个小细节上了.这样子写,第一个if和第三个else在一次循环中都会执行,然后,就GG了. 要注意 ...

  4. django rest_framework 框架的使用02

    rest_framework 访问频率的限制(节流) 对于用户访问频率的显示,rest_framework 也有自己的类进行约束 先来一个自己的基于它的类的节流类的限制 class VisitCont ...

  5. Servlet讲解

    第1章 Servlet的生命周期 1.1.1 Servlet的生命周期概述 1.1.1.1 什么是生命周期 生命周期:一个对象从创建到销毁过程. 1.1.1.2 Servlet的生命周期(*****) ...

  6. react之引用echarts

    react之引用echarts npm: npm install echarts --save 代码: import React, { Component } from 'react'; // 引入 ...

  7. AnyConnect removes "Connections" tab from IE Settings solution

    I have an ASA 5510 that we use for SSL VPN Client access.  The ASA distributes the AnyConnect (v2.4. ...

  8. nodejs API(二)

    官网所在位置:https://nodejs.org/dist/latest-v6.x/docs/api/querystring.html querystring.escape(str) 转义   qu ...

  9. ajax传参里含有特殊字符的坑

    问题场景:今天在测试自己手上的页面功能时,发现一个小bug,在用ajax向后台发数据时,只要参数中出现一些特殊字符,控制台会报错http 400的问题,其实就是特殊字符服务器不能解析.好了,问题是找到 ...

  10. mybatis框架入门程序:演示通过mybatis实现数据库的修改操作

    1.mybatis的基本配置工作可以在我的这篇博客中查看:https://www.cnblogs.com/wyhluckdog/p/10149480.html 2.修改用户的配置文件: <upd ...