我创建了一些自定义元素,我想以编程方式将它们放置在右上角(n顶部边缘的m像素和右边缘的像素).因此我需要获得屏幕宽度和屏幕高度,然后设置位置:
int px = screenWidth - m;
int py = screenHeight - n;
Run Code Online (Sandbox Code Playgroud)
如何获得screenWidth并screenHeight在主要活动?
我想获得有关设备的信息,看看它是智能手机还是平板电脑.我该怎么做?
我想根据设备类型显示来自资源的不同网页:
String s="Debug-infos:";
s += "\n OS Version: " + System.getProperty("os.version") + "(" + android.os.Build.VERSION.INCREMENTAL + ")";
s += "\n OS API Level: " + android.os.Build.VERSION.SDK;
s += "\n Device: " + android.os.Build.DEVICE;
s += "\n Model (and Product): " + android.os.Build.MODEL + " ("+ android.os.Build.PRODUCT + ")";
Run Code Online (Sandbox Code Playgroud)
但是,对我来说似乎没用.
这个解决方案现在适用于我:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
if (SharedCode.width > 1023 || SharedCode.height > 1023){
//code for big screen (like tablet)
}else{ …Run Code Online (Sandbox Code Playgroud) 我有两个具有相同分辨率的Android设备
Device1 - >分辨率480x800对角线屏幕尺寸 - > 4.7英寸
Device2 - >分辨率480x800对角线屏幕尺寸 - > 4.0英寸
如何查找设备对角线屏幕尺寸?
我使用了上面的链接,但它给出了设备对角线屏幕尺寸 - > 5.8
我试过这个......
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int fullscreenheight = metrics.heightPixels;
int fullscreenwidth = metrics.widthPixels;
Run Code Online (Sandbox Code Playgroud)
和....
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Run Code Online (Sandbox Code Playgroud)
Gnex的显示屏为720×1280.宽度/高度的返回结果(取决于当然的方向)永远不会是1280.我认为这可能与冰淇淋三明治中的屏幕导航栏有关,所以我隐藏了:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Run Code Online (Sandbox Code Playgroud)
...然后启动一个连续记录屏幕尺寸高度/宽度的线程.即使在ICS导航栏完全消失后......屏幕大小也永远不会报告1280值.我会得到这样的数字:
width = 720
height = 1184
Run Code Online (Sandbox Code Playgroud)
如何在ICS中获得真正的设备屏幕分辨率?
我需要这个值的原因是因为我的应用程序播放视频,我希望视频在设备处于横向时占据整个屏幕.现在我知道你在想什么,为什么不给视频视图增加高度/宽度的"match_parent"值?原因是因为我的视频有多个宽高比,我希望能够根据屏幕的整个宽度计算正确的视频大小.
欲望有480 x 800像素,3.7英寸,HD有480 x 800像素,4.3英寸屏幕规格.
我运行从此线程接受作为答案的代码如何获取设备的屏幕大小?但这是错误的!例如,对于3.7英寸的屏幕尺寸返回2.4,这是非常错误的!
有人知道如何获得真正的屏幕尺寸吗?我不需要分辨率我需要屏幕的屏幕尺寸(英寸).
注意:此代码错误(至少对我不起作用)
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels; //give me 320
int height = dm.heightPixels; //give me 533
Run Code Online (Sandbox Code Playgroud)
我有HTC Desire,我的分辨率是480 x 800像素!
我知道我很蠢!,显然我做错了什么但有人可以请我如何以英寸为单位获得真正的屏幕尺寸,并获得设备的真正分辨率?
谢谢
使用layout-swdp限定符时,我得到附件中显示的结果.sw限定符应该表示最小维度必须匹配或大于限定符.这似乎不适用于Nexus 7(运行4.2.1).我对最小宽度限定符的作用或N7错误报告感到困惑吗?
为了重现我的测试用例,我有许多layout-swdp文件夹.每个都有2个文本字段.第一个只是说明它所在的文件夹.接下来是下面的代码:
private CharSequence collectScreenStats() {
StringBuilder str = new StringBuilder();
DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
int dpWidth = (int)(width / metrics.density);
int dpHeight = (int)(height / metrics.density);
str.append(Build.MANUFACTURER);
str.append(" ");
str.append(Build.MODEL);
str.append("\n");
str.append("Pixels: ");
str.append(width);
str.append(" x " );
str.append(height);
str.append("\nDp (px / density): ");
str.append(dpWidth);
str.append("dp x " );
str.append(dpHeight);
str.append("dp" );
str.append("\nsmallest w: " + Math.min(dpWidth, dpHeight));
str.append("\ndensity: ");
str.append(metrics.density);
str.append("\ndensityDpi: ");
str.append(metrics.densityDpi);
return str;
}
Run Code Online (Sandbox Code Playgroud)
