Tag: 屏幕分辨率

检测用户进行的屏幕分辨率更改(Java Listener?)

我有一个Java应用程序启动,创建一个GUI,并且工作得很好。 如果用户更改屏幕分辨率(从1440×900切换到1280×768),我希望能够收听该事件。 有任何想法吗? PS – 我想在事件/监听器模式下执行此操作,而不是在轮询模式下执行此操作,这样就不会浪费额外的CPU周期,例如定时器每隔N秒不断轮询屏幕大小以查看它是否已更改。

处理基于像素的Android游戏的不同分辨率

我正在为Android平台开发一个2D平台游戏,所以我并不关心屏幕DPI,而是更多关于实际分辨率的像素。 从我在网上收集的内容来看,有几种不同的分辨率(和宽高比)。 根据我的搜索,目前普遍存在的两种分辨率是480×320(1.5)和800×480(1.666),是吗? 我想将这两个决议作为目标,以吸引大多数客户。 现在,我可以通过为更大的显示器显示40像素的黑色边框来处理不同的宽高比,实际上将其减少到720×480像素和1.5的比率。 我的游戏的问题在于游戏玩家必须在每个屏幕上看到相同数量的世界。 否则,一些球员将获得不公平的优势。 此外,我会根据可见性触发一些事件。 例如,只有当玩家开始看到它时才允许敌人开始射击。 否则,敌人的子弹似乎无处可去。 所以我想我需要为一个分辨率创建我的图形并为另一个分辨率缩放它们。 或者我为每个分辨率创建单独的图形。 是对的吗? 不幸的是,这两种方式对于像素图形来说都是次优的。 另一方面:我如何才能将游戏限制在这些分辨率上(特别是对于Android Market)? 我知道清单中的“supports-screens”标签,但这取决于有效的屏幕尺寸,而不是像素的大小,还是我错了? 我也对其他Android游戏开发者在解决分辨率独立性方面的个人经历感兴趣。 谢谢!

高分辨率(MS Surface)上的错误Swing UI缩放

我目前正在开发一个涉及Swing GUI的小型Java应用程序。 在我的开发PC上,一切看起来都不错,但是当我在MS Surface上运行它时,某些图标对于组件来说似乎太大了(或者组件对于图标而言太小)。 这就是我的意思: 谷歌的研究让我得出结论,这是由于Surface的高分辨率和Win8的缩放,让一些项目显得更大。 所以我将缩放重置为100%,它实际上修复了不良缩放。 不幸的是,这并没有真正解决我的问题。 没有变焦,一切都太小了,所以我宁愿不禁用它。 但有没有聪明的方法来解决这个问题? 我可以只“缩放”我的程序或Java的图标吗? 理想情况下,我甚至想要升级整个画面,因为一切都很小。 编辑:显然,我也试过调整实际的JFrame大小,但它对对话框大小没有影响。 我正在通过调用对话框 JOptionPane.showMessageDialog(frame, msg, “Information”, JOptionPane.INFORMATION_MESSAGE); 顺便说说。

用Java更改屏幕分辨率

我有一个程序,它使用可视化脚本( sikuli-script )来允许用户创建自己的可视脚本。 该程序需要跨多个可能具有不同屏幕分辨率的系统工作。 Sikuli在逐个像素的基础上匹配突出显示的图像,因此在具有不同分辨率的系统上将无法找到图像。 因此有没有办法可以通过java代码更改Windows中的分辨率设置? 全屏不是一个选项,因为需要捕获的图像来自不同的软件包,即我的软件包位于图像需要来自的上方(并且在捕获发生时最小化)

如何在java中获取屏幕DPI?

我正在开发一个应用程序,我需要屏幕DPI ..我检查了几个论坛,并获得了一个代码片段,如下所示: Dimension screen = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); System.out.println(“screen width: “+screen.getWidth()); System.out.println(“screen height: “+screen.getHeight()); int pixelPerInch=java.awt.Toolkit.getDefaultToolkit().getScreenResolution(); System.out.println(“pixelPerInch: “+pixelPerInch); double height=screen.getHeight()/pixelPerInch; double width=screen.getWidth()/pixelPerInch; double x=Math.pow(height,2); double y=Math.pow(width,2); 但无论屏幕分辨率如何, pixelPerInch值在96处保持不变。代码有什么问题? 我得到了另一个swt代码,用于同样的事情,如下所示: import org.eclipse.swt.graphics.Device; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class MainClass { public void run() { Display display = new Display(); Shell shell = new Shell(display); shell.setText(“Display Device”); createContents(shell); shell.pack(); […]