以编程方式在Android上设置屏幕密度
问题描述:
我正在写一个游戏,我想在中密度和高密度(320x480和480x800)上运行。为了运行两个密度的应用程序,我必须设置支持屏PARAM像this.-以编程方式在Android上设置屏幕密度
<supports-screens android:anyDensity="true" />
我的问题是,在一些第二代设备(即HTC Desire的),游戏高清密度运行,但表现有点差,所以我试图为这些设备“强制”中等密度。
我已经设法获得的电流密度像this.-
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
和DisplayMetrics类似乎有一个“setTo”的方法,但不知道这是否符合我的需要,我也究竟应该用它。有什么办法可以做到这一点?
谢谢!
答
我对此没有太多的想法,但你可以试试这个:
只需使用一个全屏幕布局,里面定义了你想要的大小另一个布局。有点像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:layout_width="200dip"
android:layout_height="150dip">
<Button android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
我在里面放了一个按钮来显示内容的位置。
感谢
如果您使用的是Windows,并知道如何使用JNI,微软提供了C++的Win32函数调用来做到这一点:ChangeDisplaySettingsEx()和EnumDisplaySettings()。 –
谢谢你的回答Hemant,但我想我没有解释自己。我的游戏已经正确配置了中高分辨率,而且两者都很好。我的问题是关于在Hi res上运行游戏的“旧”设备的性能,这就是为什么我需要强制这些设备在中间分辨率上运行。谢谢。 – ssantos
Ups,抱歉,没有看到您的第二条评论。我正在使用一个java游戏框架,不知道我是否可以访问这些C++函数,但我会给他们一个尝试。谢谢! – ssantos