我走遍了互联网,寻找一种方法来做一些我认为非常基本的事情。底线是:我有一个我设计的Android UI。它由沿屏幕中间放置的按钮组成。这是一种菜单屏幕。这些按钮需要位于相同的位置,但是应该相对于屏幕的物理尺寸增大或减小。基本上,如果我在屏幕上有一个1px的按钮(或倾角; dip是我目前在我的应用程序中使用的)X 1px,那么,如果我将屏幕尺寸加倍,按钮应该自动格式化为2px X 2px。我已经对我的申请进行了数学计算。我的按钮在屏幕下方约为225/854(从顶部开始约为26.44%。)我想做的就是让按钮降低相同的量。假设我将屏幕尺寸缩小到500,比例应该保持不变。
示例数学工作:
(225 dip / 854 px)* 100 = 26.44%
因此,如果我将屏幕尺寸减小到500px,则倾角应如下所示。
(225dip / 854px)* 500px = 131.733021077283372 dip
这是扩展按钮的最佳方法吗?如果是这样,我如何告诉我的应用程序计算按钮应放在哪个正确的倾角?
如果你仍然感到困惑(对不起!),这是查看这项工作的关键。
225dip =按钮从屏幕顶部向下移动了多远。 854px =屏幕的物理大小(以像素为单位) 131.733021077283372 dip =如果屏幕减小到500px物理尺寸,则新的倾角数
答案 0 :(得分:1)
您可以使用WindowManager获取屏幕大小。在您的活动中:
getWindow().getWindowManager().getDefaultDisplay().getWidth();
在您的情况下或getHeight()。一旦你有了,那就做你的数学,然后:
ViewGroup.LayoutParams buttonLayout = yourButton.getLayoutParams();
buttonLayout.height = 42; // Set your height
buttonLayout.y = 42; //Set distance from top of the screen
等等。完成后:
yourButton.setLayoutParams(buttonLayout);
让我知道这是否有效。
答案 1 :(得分:0)
我对android有点新,但是,在我创建的游戏中,我发现允许android确定屏幕的dpi(每英寸点数)并相应地选择我的图像是最容易的。
例如,我的游戏资源文件夹中有文件夹列为drawable,drawable-hdpi等。这些文件夹可供您将相应的图像放入屏幕类型。
在Android清单中,您可以列出您支持的dpi屏幕,这些文件夹将被正确使用。
希望这有帮助!
编辑:我肯定会查看此文档页面
http://developer.android.com/guide/practices/screens_support.html
答案 2 :(得分:0)
如果使用dip(或dp)和sp单位(字体)设计界面,可以让Android为您进行缩放。虽然在每台设备上可能不是像素完美,但您的应用程序在许多设备上看起来肯定是正确的。
Supporting multiple screens上的http://d.android.com描述了这个......