安卓开发技巧四:手机分辨率处理工具类

/**
 *
 * @Description:手机分辨率处理工具类
 * @author:
 * @see:
 * @since:
 * @copyright ©
 * @Date:2014年8月13日
 */
public class DensityUtil {  

    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }  

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    public static int px2dip(Context context, float pxValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (pxValue / scale + 0.5f);
    }
    /**
     * 将px值转换为sp值,保证文字大小不变
     *
     * @param pxValue
     * @param fontScale(DisplayMetrics类中属性scaledDensity)
     * @return
     */
    public static int px2sp(float pxValue, float fontScale) {
     return (int) (pxValue / fontScale + 0.5f);
    }

    /**
     * 将sp值转换为px值,保证文字大小不变
     *
     * @param spValue
     * @param fontScale(DisplayMetrics类中属性scaledDensity)
     * @return
     */
    public static int sp2px(float spValue, float fontScale) {
     return (int) (spValue * fontScale + 0.5f);
    }

    /**
     * 获得屏幕密度
     * @param context
     * @return
     */
    public static int getScreenDensityDpi(Activity context) {
    DisplayMetrics metric = new DisplayMetrics();
    context.getWindowManager().getDefaultDisplay().getMetrics(metric);
    int density = metric.densityDpi;
    CLog.d("DensityUtil density=", density+"");
    return density;
    }

    /**
     * 获得屏幕高度
     * @param context
     * @return
     */
    public static int getScreenHeight(Activity context) {
    DisplayMetrics metric = new DisplayMetrics();
    context.getWindowManager().getDefaultDisplay().getMetrics(metric);
    int screenHeight = metric.heightPixels;
    CLog.d("DensityUtil screenHight=", screenHeight+"");
    return screenHeight;
    }

    /**
     * 获得屏幕宽度
     * @param context
     * @return
     */
    public static int getScreenWidth(Activity context) {
    DisplayMetrics metric = new DisplayMetrics();
    context.getWindowManager().getDefaultDisplay().getMetrics(metric);
    int screenWidth = metric.widthPixels;
    CLog.d("DensityUtil screenWidth=",screenWidth+"");
    return screenWidth;
    }

    /**
* 返回状态栏/通知栏的高度
*
* @param activity
* @return
*/
public static int getStatusHeight(Activity activity) {
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
return statusBarHeight;
}

}  

时间: 2024-10-06 05:02:02

安卓开发技巧四:手机分辨率处理工具类的相关文章

安卓开发技巧二:自定义日志工具类XLog的实现

我们在开发过程中,打印日志是必不可少的一个调试环节,然而,直接使用系统自带的Log日志类,并不能满足我们实际项目的需求:假如我们现在在开发一款比较大的项目,用到打印日志的地方肯定特别多,等到真正上线的时候,我们是不希望日志依旧能够打印出的,原因很简单,不仅多少有些影响效率,更有可能导致信息的泄露,所以我们就需要把所有的日志打印语句全部取消掉,难道我们真的一个一个的去删除这些打印日志的语句吗?项目那么大,就是想删除,也得耗费大量的时间和精力!大家不用怕,笔者这就给大家带来一款控制线上版本和线下版本

安卓开发技巧一:深入理解Android布局中Layout_weight的属性

今天开始将要为大家介绍一些安卓开发过程将要用到的一些技巧,这些技巧全部来自网络搜集,或者自己在企业做项目的时候总结出来的,利用这些技巧将会对我们开发带来非常方便的便捷性. 先来记录一下这一段时间的技巧目录,方便大家以后方便查阅(大概有不到三十种的技巧总结,大概每周分享两个技巧,笔者将尽可能写的详细,以及提供实例源码): 安卓开发技巧一:深入理解Android布局中Layout_weight的属性 安卓开发技巧二:自定义日志工具类 安卓开发技巧三:Activity的启动模式 安卓开发技巧四:分享一

delphi XE5下安卓开发技巧

delphi XE5下安卓开发技巧 一.手机快捷方式显示中文名称 project->options->Version Info-label(改成需要显示的中文名即可),但是需要安装到安卓手机才可以(IOS的没有试过) 二.使用Sqllite存储中文 SqlLite中,字段类型要设置为nvarchar,保存时,有两种方式1)用Post时,对中文的字段要进行UTF8转换先用一个string变量转换一下(不转换的话Win32编译没有问题,Android编译时出错)str_temp:=UTF8ENCO

安卓开发技巧

Android开发中LogCat工具的使用 LogCat是Android中一个命令行工具,可以用于得到程序的log信息,本附录讲解其使用方法和其中的一些技巧. 1.使用方法 LogCat使用方法如下所示: LogCat [options] [filterspecs] LogCat的选项包括: -s                    设置过滤器,如指定 '*:s'. -f <filename>   输出到文件,默认情况是标准输出. -r [<kbytes>]   Rotate l

安卓开发无法识别手机原因之一:手机SDK比工程要求的最小SDK低

创建工程时,设置限制的最小SDK: 如果你手机的内核版本比你工程的设置的最小SDK低,则不显示 来自为知笔记(Wiz) 安卓开发无法识别手机原因之一:手机SDK比工程要求的最小SDK低

利用线程创建发送手机验证码的工具类

1.生成验证码类 package com.util; import java.util.Timer; import java.util.TimerTask; /** * @description 手机发送验证码工具类 */ public class MessageCode extends TimerTask{ private Timer timer; /** * @description 短信验证码的内容 */ private String messageCode; /** * @descrip

.Net常用技巧_树控件工具类

using System; using System.Collections.Generic; using System.Text; using System.Collections; using DevComponents.AdvTree; namespace MyUtility { /// <summary> /// 树控件工具类 /// </summary> public class TreeTool { ArrayList selectArray = new ArrayLi

获取手机剩余空间工具类

1 import java.io.File; 2 3 import com.iss.utils.LogUtil; 4 5 import android.os.Environment; 6 import android.os.StatFs; 7 8 /** 9 * 类名 10 * @author 王洪贺<br/> 11 * 获取手机剩余的存储空间工具类 12 * 创建日期 2014年8月1日 13 */ 14 15 public class StorageUtil { 16 17 /** 18

安卓开发时酷派手机不打印请求网络信息问题的解决

在做安卓开发的时候,肯定要用到调试了,但是我买的酷派大神F1居然不打印请求网络的日志,在百度上寻找了一下解决办法最终解决: 解决方案: 拨号盘输入*20121220#   ->  选择日记输出级别  ->  选择Java log level -> 选择LOGD即可 这样就能够打印日志了,这是因为机子出厂的时候做了一定的限制,重新设置一下就行了,我一开始还以为是Eclipse的版本问题呢,试了一下三星的手机,发现没问题,就只有是手机的问题了,就找到了这个解决方法!