Android 工具类,持续更新
来源:互联网 发布:涂鸦照片的软件 编辑:程序博客网 时间:2024/05/02 04:50
1.判断是否为平板的方法
/** * 判断是否为平板 * * @return */ public static boolean isPad(Activity activity) { WindowManager wm = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); // 屏幕宽度 float screenWidth = display.getWidth(); // 屏幕高度 float screenHeight = display.getHeight(); DisplayMetrics dm = new DisplayMetrics(); display.getMetrics(dm); double x = Math.pow(dm.widthPixels / dm.xdpi, 2); double y = Math.pow(dm.heightPixels / dm.ydpi, 2); // 屏幕尺寸 double screenInches = Math.sqrt(x + y); // 大于6尺寸则为Pad if (screenInches >= 6.0) { return true; } return false; }
2.dp 转 px
/** dp值转px值 */ public static int dp2px(Activity activity, Integer width){ Resources resources = activity.getResources(); float fPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, width, resources.getDisplayMetrics()); int iPx = Math.round(fPx); return iPx; } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, Integer dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); }
3.文本自动换行
private static String autoSplitText(final TextView tv) { final String rawText = tv.getText().toString(); //原始文本 final Paint tvPaint = tv.getPaint(); //paint,包含字体等信息 final float tvWidth = tv.getWidth() - tv.getPaddingLeft() - tv.getPaddingRight(); //控件可用宽度 //将原始文本按行拆分 String [] rawTextLines = rawText.replaceAll("\r", "").split("\n"); StringBuilder sbNewText = new StringBuilder(); for (String rawTextLine : rawTextLines) { if (tvPaint.measureText(rawTextLine) <= tvWidth) { //如果整行宽度在控件可用宽度之内,就不处理了 sbNewText.append(rawTextLine); } else { //如果整行宽度超过控件可用宽度,则按字符测量,在超过可用宽度的前一个字符处手动换行 float lineWidth = 0; for (int cnt = 0; cnt != rawTextLine.length(); ++cnt) { char ch = rawTextLine.charAt(cnt); lineWidth += tvPaint.measureText(String.valueOf(ch)); if (lineWidth <= tvWidth) { sbNewText.append(ch); } else { sbNewText.append("\n"); lineWidth = 0; --cnt; } } } sbNewText.append("\n"); } //把结尾多余的\n去掉 if (!rawText.endsWith("\n")) { sbNewText.deleteCharAt(sbNewText.length() - 1); } return sbNewText.toString(); }
0 0
- Android 工具类,持续更新
- Android工具类,持续更新中
- Android 工具类收集(持续更新...)
- Android 系统工具类SystemUtils收集整理(持续更新)
- Android 系统工具类SystemUtils收集整理(持续更新)
- Android中常用开发工具类—持续更新...
- Android 系统工具类SystemUtils收集整理(持续更新)
- Android 工具相关(持续更新)
- Android开发工具网站整理--持续更新
- Android 工具集(持续更新)
- 加密工具类(持续更新中....)
- js 工具类(持续更新)
- Android开源项目发现--- 工具类依赖注入DI篇(持续更新)
- Android开源项目发现--- 工具类图片缓存篇(持续更新)
- Android开源项目发现--- 工具类网络相关篇(持续更新)
- Android开源项目发现--- 工具类数据库ORM篇(持续更新)
- Android开源项目发现--- 工具类快速开发篇(持续更新)
- Android开源项目发现--- 工具类向下兼容篇(持续更新)
- 兼容的firstChild,lastChild,nextSibling,previousSibling
- 简单枚举类型——植物与颜色
- hive常用命令
- HDU ACM 14 1398 Square Coins
- Lightoj1037【状压DP】
- Android 工具类,持续更新
- ORACLE全部ORA错误收集整理
- 检索二维数组
- 67. 可伸缩的 Comet
- HIVE Metastore中Local/Embedded Metastore Server的配置分析
- linux_sqlite3添加新信息,插入信息
- 从头开始学java<一>
- Http认证
- HDU 4003 Find Metal Mineral (树形dp)