`
wjlgryx
  • 浏览: 306756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 密度转换多分辨率

阅读更多


import android.content.Context;
import android.util.DisplayMetrics;
import android.util.Log;

/**
* 计算公式 pixels = dips * (density / 160)
*
* @version 1.0.1 2010-12-11
*
* @author
*/
public class DensityUtil {
private static final String TAG = "DensityUtil";
// 当前屏幕的densityDpi
private static float dmDensityDpi = 0.0f;
private static DisplayMetrics dm;
private static float scale = 0.0f;

/**
*
* 根据构造函数获得当前手机的屏幕系数
*
* */
public DensityUtil(Context context) {
// 获取当前屏幕
dm = new DisplayMetrics();
dm = context.getApplicationContext().getResources().getDisplayMetrics();
//设置DensityDpi
setDmDensityDpi(dm.densityDpi);
//密度因子
scale = getDmDensityDpi() / 160;
Log.i(TAG, toString());
}

/**
* 当前屏幕的density因子
*
* @param DmDensity
* @retrun DmDensity Getter
* */
public static float getDmDensityDpi() {
return dmDensityDpi;
}
/**
* 当前屏幕的density因子
*
* @param DmDensity
* @retrun DmDensity Setter
* */
public static void setDmDensityDpi(float dmDensityDpi) {
DensityUtil.dmDensityDpi = dmDensityDpi;
}
/**
* 密度转换像素
* */
public static int dip2px(float dipValue) {

return (int) (dipValue * scale + 0.5f);

}
/**
* 像素转换密度
* */
public int px2dip(float pxValue) {
return (int) (pxValue / scale + 0.5f);

}
@Override
public String toString() {
return " dmDensityDpi:" + dmDensityDpi;
}

}
分享到:
评论

相关推荐

    Android多分辨率适配

    总结,Android多分辨率适配是一项复杂但必要的任务,涉及到资源文件的组织、布局设计、像素单位转换等多个方面。通过合理运用上述方法,开发者可以确保应用在各种设备上都能提供良好的用户体验。在实际项目中,还...

    Android多分辨率多密度下UI适配方案.

    Android 多分辨率多密度下 UI 适配方案 Android 设计之初就考虑到了 UI 在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确。UI 适配主要受平台两个因素的影响:屏幕尺寸(屏幕的...

    android 获取屏幕硬件分辨率方法

    然而,这些值可能不会直接对应于屏幕的实际分辨率,因为Android支持多种屏幕密度。 `dm.density`是一个浮点数,表示屏幕的密度因子,它通常基于160dpi(每英寸160个像素,也称为MDPI或中等密度)的标准。例如,如果...

    Android多分辨率适配方案

    Android 多分辨率适配方案 Android 设计之初就考虑到了 UI 在多平台的适配,它本身提供了一套完善的适配机制,随着版本的发展适配也越来越精确。UI 适配主要受平台两个因素的影响:屏幕尺寸(屏幕的像素宽度及像素...

    android获取设备屏幕分辨率

    同时,还可以展示如何处理不同密度设备下的分辨率问题,例如将像素值转换为dp(密度无关像素)值。 六、适配不同分辨率的屏幕 在开发过程中,为了保证应用在不同分辨率的设备上都能有良好的显示效果,通常需要进行...

    在android中,同样一张图片在不同的分辨率中有不同的大小

    这是因为不同密度的图片需要不同的像素数量,高密度图片的像素更多,所以文件大小通常更大。例如,一张100x100像素的MDPI图片,转换成HDPI需要200x200像素,文件大小会是原来的4倍。 对于开发者来说,处理这种问题...

    Android-选择分辨率并自动生成对应的dimen.xml文件

    开发者可以输入尺寸值(如dp或px),然后工具会根据设备的密度转换成相应的dp值,并写入到相应的`dimen.xml`文件中。这大大减少了手动创建和维护多个尺寸文件的工作量。 4. **使用自动化工具的优势** - **一致性**...

    安卓Android源码——多分辨率适配,判断平板还是手机,等比例缩小图片.zip

    以上是关于"安卓Android源码——多分辨率适配,判断平板还是手机,等比例缩小图片"的详细知识点介绍,这些技术对于开发适应各种Android设备的应用至关重要。在实际项目中,结合这些知识和压缩包中的代码示例,可以...

    Android实例-获取屏幕的物理分辨率

    在Android平台上,获取屏幕的物理分辨率是开发过程中的一项重要任务,尤其对于那些需要根据屏幕尺寸进行适配的应用来说。在Delphi这样的集成开发环境中,我们可以编写代码来获取这些信息。本实例将详细介绍如何使用...

    dpiTest android 检测手机分辨率

    在Android开发中,屏幕分辨率和像素密度(DPI)是两个至关重要的概念,它们直接影响到应用的界面显示效果。本文将深入探讨“dpiTest”工具如何帮助开发者检测Android设备的屏幕分辨率以及dp(density-independent ...

    android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar

    本压缩包文件提供了关于如何在Android平台上进行多分辨率适配、判断设备是平板还是手机以及如何等比例缩小图片的方法。以下是这些关键知识点的详细解释: 1. 多分辨率适配: Android系统提供了多种密度独立像素...

    android分辨率适配源码+apk包

    Android设备的屏幕分辨率可以分为多个级别,如LDPI(低密度)、MDPI(中密度)、HDPI(高密度)、XHDPI(超高清)等,每个级别对应不同的像素密度。Android系统提供了一个基于密度独立像素(DIP或DP)的机制,以确保...

    Android像素转换dp转px或相反

    Android设备屏幕的分辨率和物理尺寸各异,为了确保应用界面在不同设备上呈现一致的效果,引入了密度无关像素(Density-independent Pixel, dp)的概念。1dp在不同密度的屏幕上代表相同的物理尺寸。Android定义了四种...

    探究Android的多分辨率支持以及各种类型图标尺寸大小.doc

    总之,Android的多分辨率支持和图标尺寸大小管理是其跨设备兼容性的重要组成部分。开发者需了解这些概念,以便创建能在各种Android设备上无缝运行的应用程序。通过正确使用DIP、适应性布局和密度特定的资源,可以...

    Android应用源码之android多分辨率适配 ,判断平板还是手机,等比例缩小图片-IT计算机-毕业设计.zip

    本项目"Android应用源码之android多分辨率适配,判断平板还是手机,等比例缩小图片"提供了一个很好的学习资源,帮助开发者了解如何在Android平台上进行有效的屏幕适配和图像处理。 首先,Android多分辨率适配主要...

    测试手机分辨率的小Demo

    8. **资源多版本支持**:Android提供了一个资源目录结构,允许开发者为不同屏幕尺寸和密度提供特定的资源,如`res/layout-sw600dp`、`res/drawable-hdpi`等,确保应用在不同设备上看起来美观且功能正常。 9. **...

    android dx和dp 像素和dp之间转换的工具类

    在Android开发中,屏幕适配是一项至关重要的任务,因为Android设备有着各种各样的屏幕尺寸和分辨率。`dx`和`dp`(Density-independent Pixels)是Android系统中处理像素单位的关键概念,它们对于创建跨设备一致的...

    Android 自适应分辨率

    总之,Android自适应分辨率涉及到屏幕尺寸、像素密度、资源适配、布局管理等多个方面。开发者需要理解这些概念,并结合Android提供的工具和机制,才能创建出能在各种设备上良好运行的应用。通过不断实践和优化,你的...

    Android分辨率

    如果你需要逻辑像素分辨率,可以使用`DisplayMetrics`的`densityDpi`属性来转换: ```java float density = displayMetrics.density; int logicalWidthDp = (int) (width / density); int logicalHeightDp = (int) ...

    android Px,DP转换工具(可选择不同的dpi)

    通过使用这个"Android Px, DP转换工具",开发者可以更加轻松地处理与屏幕尺寸和密度相关的计算,从而优化应用的用户体验。无论是进行UI设计还是编写布局代码,这个工具都将是一个非常实用的助手。

Global site tag (gtag.js) - Google Analytics