这让我困扰了很长一段时间,我对此做了很多研究,但找不到答案.我第一次在这里发帖提问,如果我犯了错误,请更正/原谅我.
环境:iPad,iOS 6.0
问题:旋转后基本模态视图更改为全屏.
描述:我有一个全屏应用程序正在运行,目前显示模态视图控制器.从显示模式视图,我通过执行以下操作显示另一个模态视图:
vc.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:vc animated:YES];
//[self presentViewController:vc animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)
当第二个视图出现时,我旋转iPad设备.基本(第一)模态视图变为全屏,最顶层(第二)模态视图保持为formSheet样式.(正确旋转)
我可以通过向navigationController添加模态视图来解决这个问题,但我希望将其保存在模态视图中.
任何人都知道修复?我相信这里的人有同样的问题: ios 6旋转后模态视图尺寸不正确
顺便说一下,iOS 5中的一切都运行良好.苹果改变了iOS 6中旋转的工作方式.谢谢,-peter
我正在开发一个Android Widget,需要区分Galaxy S和Galaxy S2.我几乎阅读了有关屏幕尺寸和密度文章的所有内容.当然,我需要使用新的限定符和新的限定符Smallest Width.我的问题是,sw320dp限定符匹配Galaxy S和Galaxy S2.但是我需要Galaxy S2的另一种布局,但是找不到合适的限定符.
银河S的定义,密度233
屏幕尺寸(以像素为单位):480像素x 800像素
屏幕尺寸以dp为单位:329dp x 549dp(原因1dp = 1pixel /(密度/ 160)
- >所以限定符sw320dp必须在这里匹配.是的,确实如此
Galaxy S II的定义,密度218
屏幕尺寸(以像素为单位):480像素x 800像素
屏幕尺寸dp:352dp x 587dp(原因1dp = 1pixel /(密度/ 160)
- >所以限定符sw340dp必须在这里匹配,但不是没有
(在模拟器和真实设备上测试过)
drawables不是问题,但我的布局,特别是高度和文本大小在这些设备上是不同的,所以我真的需要一个特定的布局.
任何人都有想法或更多的经验吗?
我在多台机器、操作系统和平台上使用相同的 .emacs。我希望 Emacs 在调用时的默认帧大小与可用的屏幕大小相关(例如,96 行在 1600x1200 桌面屏幕上工作得很好,但在 1280x800 笔记本电脑上我需要指定不超过 68 行)。
是否有一个 emacs-lisp 表达式可以返回系统屏幕的宽度和高度?
更新:我刚刚发现了一个类似的问题,但由于某种原因,在 Windows XP 系统上的 GNU Emacs 23.2 中找不到 (x-display-pixel-width) 和 (display-pixel-width) 。继续研究...
欲望有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像素!
我知道我很蠢!,显然我做错了什么但有人可以请我如何以英寸为单位获得真正的屏幕尺寸,并获得设备的真正分辨率?
谢谢
从Android 3.0开始,显示屏上有一个带有后退和主页按钮的导航栏.现在,如果我得到这样的屏幕尺寸
ClockLwp.ScreenHeight = getWindowManager().getDefaultDisplay().getHeight();
ClockLwp.ScreenWidth = getWindowManager().getDefaultDisplay().getWidth();
Run Code Online (Sandbox Code Playgroud)
这个的
getResources().getDisplayMetrics().widthPixels
getResources().getDisplayMetrics().heightPixels
Run Code Online (Sandbox Code Playgroud)
我对风景和肖像有不同的价值.这是我的意思的一个例子:
Acer Iconia A500人像模式:800 x 1232 Acer Iconia A500风景模式:1280 x 752
AFAIK适用于所有带有这种导航栏的设备.(例如三星Galaxy Nexus,GalaxyTab 10.1等)
现在我的问题是,如果我处于纵向模式,我怎样才能获得横向模式的值,反之亦然?
我需要更改页面上的样式,具体取决于它是手持设备(如手机)还是大屏幕设备,如笔记本电脑,固定电脑或平板电脑.
我知道我可以通过css max-width查询来检测分辨率等等,但这并不令人信服.主要是因为今天的智能手机拥有如此高分辨率的屏幕.IE索尼Xperia S,它有一个720p到1280的屏幕,但它只有4.3英寸.因此,在普通电脑屏幕上可读的10px字体将变得太小而无法阅读.
因此,我需要知道的不仅仅是分辨率,而是知道它是否是小屏幕设备.(我假设媒体="掌上电脑"的CSS风格是要走的路.如果我错了请纠正我).
那么:css媒体类型"掌上电脑"关心的参数是什么?
等等
谢谢!
screen handhelddevice screen-resolution screen-size media-queries
我正在使用交叉编译在raspiber上使用raspberry pi开发qt5应用程序.
当我运行它时,我得到一个黑屏,试图显示一个弹出窗口,这是一个QFrame.
我想它无法定位,因为我有错误信息到达开头:
EGLFS:无法查询物理屏幕大小,默认为100 dpi.
EGLFS:要覆盖,请设置QT_QPA_EGLFS_PHYSICAL_WIDTH和QT_QPA_EGLFS_PHYSICAL_HEIGHT(以毫米为单位).
EGLFS:无法查询屏幕深度,默认为32.
EGLFS:要覆盖,请设置QT_QPA_EGLFS_DEPTH.
当我禁用QFrame时,默认情况下应用程序以全屏方式启动,而我没有设置它.
我尝试用以下方法设置这些环境变量:
int main(int argc, char *argv[])
{
QByteArray width = qgetenv("QT_QPA_EGLFS_PHYSICAL_WIDTH");
width.setNum(1920);
QByteArray height = qgetenv("QT_QPA_EGLFS_PHYSICAL_HEIGHT");
height.setNum(1080);
QApplication a(argc, argv);
MainWindow w;
w.show();
w.launchGame();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
但仍会显示错误消息.
主窗口是一个QWidget,我使用以下方法定义了他的大小:
setFixedSize(1280, 720);
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何正确设置这些变量还是你有另一种解决方案?
我差不多已经完成了构建我的第一个iPhone应用程序,并试图添加背景图像,并且发现它有点令人困惑,因为现在不同的iPhone版本中有3个或4个不同大小的屏幕,具有不同的启动分辨率.
因此,虽然我知道整件事image@2x.png,但我仍然不知道我真正需要什么.如果我想让我的应用程序在iPhone 4/4s,5s/5c,6/6 +上运行,我需要多少个不同版本的背景图像,以及尺寸和分辨率是多少?
我已经google了,并没有找到任何最新的2014年的有凝聚力的答案.
此外,如果iPhone 6是1334x750 @ 3x,这是否意味着我应该包括4002x2250背景?然后是1920x1080 iPhone 6+ @ 3x,5760 x 3240图像?这太棒了!我觉得我必须正确理解这一点.
我是Android开发的新手,我在android studio上构建了一个应用程序,我想让我的应用程序在所有设备上都有相同的设计:
三星Galaxy S4 => 1080x1290; 5.0"
Galaxy Nexus => 720x1280; 4.7"
Nexus 4 => 768x1280; 4.7"
摩托罗拉Droid Razr M => 540x960; 4.3"
Nexus S => 480x800; 4"
Galaxy S2 => 480x800; 4.3"
Galaxy Ace => 320x480; 3.5"
Galaxy Note => 800x1280; 5.3"
Galaxy Note II => 720x1280; 5.5"
Nexus 10 => 2560 x 1600; 10.1"
Galaxy Tab 10.1 => 1280*800; 10.1"
Galaxy Note 8.0 => 1280*800; 8.0"
Galaxy Tab 7.7 => 1280*800; 7.7"
Nexus 7 => 1280*800; 7.0"
Galaxy …
layout android screen-orientation screen-size android-screen-support
有一种非常巧妙的方法可以将dp转换为不带Context的px,它是这样的:
public static int dpToPx(int dp) {
float density = Resources.getSystem().getDisplayMetrics().density;
return Math.round((float) dp * density);
}
Run Code Online (Sandbox Code Playgroud)
在Google GitHub页面上的每个Google示例中,他们都使用以下方法:
public static int convertDpToPixel(Context ctx, int dp) {
float density = ctx.getResources().getDisplayMetrics().density;
return Math.round((float) dp * density);
}
Run Code Online (Sandbox Code Playgroud)
那么第一种方法有什么问题吗?对我来说,它在我所有的应用程序中都能正常工作,但是我想知道在某些情况下它可能会失败吗?