我的Android应用程序和不同的屏幕尺寸有点麻烦。 我希望我的游戏在每个屏幕上看起来都一样,但我使用静态px值来适应我的手机(HTC one m7,1080x1920,468 dpi)。
标题代码如下所示:
canvas.drawBitmap(header, null, new Rect(0,0,1080,200), null);
现在我想让它适合每个屏幕。我阅读了一些使用dp的教程(这是我想要和需要的吗?)但它们都没有用。或者我只是使用错误的计算?
或者我必须与f.E.合作。 1/7 *宽等等......
感谢您的时间和帮助。
答案 0 :(得分:1)
无论哪种方式,您都可以使用dp(密度无关像素)或px,但可以在运行时自行测量所有内容。
由于您显然没有使用Android的内置布局类,因此您必须自己测量所有内容。
是的,我的意思是你必须“与f.E. 1/7 *宽度一起工作......”。只是不要假设宽度是什么,在运行时确定宽度。
答案 1 :(得分:0)
您可以在各种值文件夹中创建integer.xml
,并根据需要使用值(0,0,1080,200)
。对于例如
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="leftwidth">0</integer>
<integer name="rightwidth">0</integer>
<integer name="topwidth">1080</integer>
<integer name="bottomwidth">200</integer>
</resources>
现在您可以通过调用以下方式获取这些值:
canvas.drawBitmap(header, null, new Rect(getResources().getInteger(R.integer.leftwidth),getResources().getInteger(R.integer.rightwidth),getResources().getInteger(R.integer.topwidth),getResources().getInteger(R.integer.bottomwidth)), null);