安卓如何获取屏幕宽度

安卓如何获取屏幕宽度,第1张

问题一:如何获取Android手机屏幕高宽值 DisplayMetrics metrics = new DisplayMetrics();

objActivitygetWindowManager()getDefaultDisplay()getMetrics(metrics);

M_NSCREENWIDTH = metricswidthPixels; 屏幕宽度

M_NSCREENHEIGHT = metricsheightPixels; 屏幕高度

问题二:android怎么获取屏幕宽度 在一个Activity的onCreate方法中,写入如下代码:

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下:

这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

问题三:Android开发 怎样获取屏幕的宽高是多少厘米 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸

下面的代码即可获取屏幕的尺寸。

在一个Activity的onCreate方法中,写入如下代码:

[java] view plain copy print

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素)

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; 屏幕宽度(像素)

int height = metricheightPixels; 屏幕高度(像素)

float density = metricdensity; 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)

但是,需要注意的是,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。比如说,一部240x320像素的低密度手机,如果运行上述代码,获取到的屏幕尺寸是320x427。因此,研究之后发现,若没有设定多分辨率支持的话,Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。所以,需要在工程的AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下:

[html] view plain copy print

>

问题四:Android 如何获得设备触摸板(屏)的长宽 WindowManager wm=(WindowManager)getContext()getSystemService(ContextWINDOW_SERVICE);int width = wmgetDefaultDisplay()getWidth();int height = wmgetDefaultDisplay()getHeight();

问题五:android如何获取屏幕宽度 现在获取屏幕宽度一般都是像素。

可以用以下代码:

WindowManager wm = (WindowManager) getContext()

getSystemService(ContextWINDOW_SERVICE);

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

或者是:

WindowManager wm = thisgetWindowManager();

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

问题六:android怎么获取屏幕的宽度 在一个Activity的onCreate方法中,写入如下代码: DisplayMetrics metric = new DisplayMetrics(); getWindowManager()getDefaultDisplay()getMetrics(metric); int width = metricwidthPixels; 屏幕宽度(像素) int height = metricheightPixels; 屏幕高度(像素) float density = metricdensity; 屏幕密度(075 / 10 / 15) int densityDpi = metricdensityDpi; 屏幕密度DPI(120 / 160 / 240)AndroidManifestxml文件中,加入supports-screens节点,具体的内容如下: 这样的话,当前的Android程序就支持了多种分辨率,那么就可以得到正确的物理尺寸了。

问题七:js网页如何获取手机屏幕宽度 ]@]@]

@sssss

var x = navigator;

var w=windowinnerWidth

|| documentdocumentElementclientWidth

|| documentbodyclientWidth;

var h=windowinnerHeight

|| documentdocumentElementclientHeight

|| documentbodyclientHeight;

documentgetElementById(p1)innerHTML=屏幕分辨率:+screenwidth + + screenheight+内部窗口: + w + + h

不知道是不是这个 屏幕分辨率 :pc上的桌面分辨率 。手机上是 一个型号固定的分辨率比如

华为8813的分辨率是480854。。 内部窗口是 改变窗口大小刷新一下就有新的数据

问题八:android编程:android中如何获取屏幕大小 获取屏幕尺寸大小,是程序能在不同大小的手机上有更好的兼容性

WindowManager wm=(WindowManager)getContext()getSystemService(ContextWINDOW_SERVICE);

wwidth=wmgetDefaultDisplay()getWidth();手机屏幕的宽度

hheight=wmgetDefaultDisplay()getHeight();手机屏幕的高度

问题九:android如何获取整个屏幕大小 状态栏的高度:Rect frame = new Rect();

MainActivitythisgetWindow()getDecorView()getWindowVisibleDisplayFrame(frame);

int topHeigh= frametop;

问题十:Android中,BaseAdapter类中怎么获取屏幕宽度 像这种可能多处能用到的我一般在BaseApplication中初始化: 这样不论在哪里都可以调到

public class App extends Application {

private static App mInstance;

@Override

public void onCreate() {

mInstance = this;

}

/

获取当前手机屏幕的宽

/

public static int getPhoneWidth() {

手机屏幕的宽

WindowManager wm = (WindowManager) mInstancegetSystemService(WINDOW_SERVICE);

return wmgetDefaultDisplay()getWidth();

}

/

获取当前手机屏幕的高

/

public static int getPhoneHeight() {

手机屏幕的高

WindowManager wm = (WindowManager) mInstancegetSystemService(WINDOW_SERVICE);

return wmgetDefaultDisplay()getHeight();

}

}

android:anyDensity的意思是支持任意密度,这个值只是一个布尔值设置。是android自己匹配的。

android中,可以获取密度,根据密度自己如果有需要可以做特殊处理:

DisplayMetrics metric = new DisplayMetrics();

getWindowManager()getDefaultDisplay()getMetrics(metric);

int width = metricwidthPixels; // 屏幕宽度(像素)

int height = metricheightPixels; // 屏幕高度(像素)

float density = metricdensity; // 屏幕密度(075 / 10 / 15)

int densityDpi = metricdensityDpi; // 屏幕密度DPI(120 / 160 / 240)

有两种方式:(获取到的大小准确度与手机的类型有关,google手机你还需要加上底部栏)

1

WindowManager wm = (WindowManager) getContext()

getSystemService(ContextWINDOW_SERVICE);

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

2

WindowManager wm = thisgetWindowManager();

int width = wmgetDefaultDisplay()getWidth();

int height = wmgetDefaultDisplay()getHeight();

我的手机是中兴U880

分辨率为480800px,

程序测试为320533dp。

这是正常的。因为单位不同嘛。

这涉及到dp和px的转换问题。

首先,480800的手机(WVGA)density=240。

转换公式如下:

pixs =dips (density/160)

dips=(pixs160)/density

480800单位是px。而320533单位是dp。把数据代入轮换公式,你会发现是符合的。

补充:

px:单位尺寸里的像素点

dp:一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px

新的sdk为了适配不同的屏幕分辨率的机型,已经陆续取消采用像素px作为布局单位。这主要是针对不同设备而言的。因为px不管在什么样的设备上都是那样长,但是dip会根据设备变化。

希望对你有帮助。

PPI(Pixels per inch):每英寸所拥有的像素数,即像素密度。

DPI(dots per inch):即每英寸上,所能印刷的网点数,一般称为像素密度。ppi计算公式:ppi = 屏幕对角线像素数/屏幕对角线英寸数,通过勾股定理计算屏幕对角线像素数。

Screen Size(屏幕尺寸):手机屏幕尺寸大小,如3英寸、4英寸、43英寸、57英寸,指的是对角线的长度。

DIP(device independent pixel):即dip/dp,设备独立像素。 1px = 1dp density(由dpi决定)

Resolution(分辨率):指手机屏幕垂直和水平方向上的像素个数。eg分辨率480 800,指该设备垂直方向有800个像素点,水平方向有480个像素点。

px(Pixel像素):相同像素的ui,在不同分辨率的设备上效果不同。在小分辨率设备上会放大导致失真,大分辨率上被缩小。

Android Design里把主流设备的 dpi 归成了四个档次: 120 dpi、160 dpi、240 dpi、320 dpi ,具体见如下表格。

实际开发当中,我们经常需要对这几个尺寸进行相互转换(比如先在某个分辨率下完成设计,然后缩放到其他尺寸微调后输出),一般按照 dpi 之间的比例即 2:15:1:075 来给界面中的元素来进行尺寸定义。

也就是说如果以 160 dpi 作为基准的话,只要尺寸的 DP 是 4 的公倍数,XHDPI 下乘以 2,HDPI 下乘以 15,LDPI 下乘以 075 即可满足所有尺寸下都是整数 pixel 。但假设以 240 dpi 作为标准,那需要 DP 是 3 的公倍数,XHDPI 下乘以 1333,MDPI 下乘以 0666 ,LDPI 下除以 2。而以 LDPI 和 XHDPI 为基准就更复杂了。同时第一款Android设备(HTC的T-Mobile G1)是属于160dpi的。鉴于以上各种原因, 标准dpi=160

谷歌官方对dp的解释如下:

A virtual pixel unit that you should use when defining UI layout, to express layout dimensions or position in a density-independent way

The density-independent pixel is equivalent to one physical pixel on a 160 dpi screen, which is the baseline density assumed by the system for a "medium" density screen At runtime, the system transparently handles any scaling of the dp units, as necessary, based on the actual density of the screen in use The conversion of dp units to screen pixels is simple: px = dp (dpi / 160) For example, on a 240 dpi screen, 1 dp equals 15 physical pixels You should always use dp units when defining your application's UI, to ensure proper display of your UI on screens with different densities

简单来说,以160dpi的设备为准,该设备上1dp = 1px;如果屏幕密度大,1dip代表的px就多,比如在320dpi的屏幕上,1dip=2px(即1dp代表2个像素)。在app开发时,最好用dp来做界面的布局,以保证适配不同屏幕密度的手机。

dp和px的换算公式:

我的理解,该公式表示px的数值等于dp的数值(设备dpi/160)

注意,px、dp是单位,但density没单位。

applyDimension的源码如下,可参考:

android的尺寸众多,建议使用分辨率为 720x1280 的尺寸设计。这个尺寸 720x1280中显示完美,在 1080x1920 中看起来也比较清晰;切图后的文件大小也适中,应用的内存消耗也不会过高。

app启动图标为4848dp,对应各dpi设备,图像资源像素如下:

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|48 48px|72 72px|94 96px|144px 144px|

*** 作栏图标为3232dp,对应各dpi设备,图像资源像素如下:其中图形区域尺寸是2424dp,可参考平时ui切图会有部分留白。

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|32 32px|48 48px|64 64px|96px 96px|

通知栏图标为2424dp,对应各dpi设备,图标像素如下:

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|24 24px|36 36px|48 48px|72px 72px|

某些场景需要用到小图标,大小应当是1616dp,其中图形区域尺寸1212dp。

| mdpi | hdpi | xhdpi | xxhdpi |

| ---:| ---: | ---:| ---:| ---:|

|16 16px|24 24px|32 32px|48px 48px|

以上就是关于安卓如何获取屏幕宽度全部的内容,包括:安卓如何获取屏幕宽度、如何获取android:anyDensity值、怎样获取Android手机屏幕的大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9275528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存