Android:根据屏幕大小编程调整尺寸

6

把设备的宽度和高度获取出来,然后根据这个设置图片/按钮的大小,是一个不好的习惯吗?

我发现,在布局和密度上使用不同的文件夹会在某些设备上产生奇怪的结果(除了不准确性)。

非常感谢您的经验分享。

谢谢
2个回答

2
是的,为所有支持的安卓屏幕制作布局是一件非常棘手的事情。市面上有很多不同的屏幕分辨率。
我曾经制作过一个演示版并且它对我来说运行得很好。我创建了一个高度和宽度相等的按钮。现在我已经根据其中一个屏幕使其高度和宽度达到所需的完美状态。
之后,我计算出需要的像素值,以便在所有屏幕上都能实现这种效果。
现在,它可以在任何密度和分辨率的设备上完美运行。
因此,如果有任何视图在运行时生成,并且您想设置其高度和宽度,则最好的方法是计算其高度-宽度比并使用它。
希望这可以帮助您。
享受编码. . . .
:)

你如何计算按钮的像素大小?你能提供相关代码吗?感谢您的帮助。 - User42590
@Akhter:现在我不能提供给你代码,但是可以给你一个想法。首先,制作适合您屏幕的布局。然后,用特定高度宽度测量按钮高度宽度,并计算设备高度宽度。现在,您已经得到了与该设备高度宽度相比较的按钮高度宽度的比例。现在根据比例计算动态设置设备高度宽度并根据比例计算动态设置按钮的高度宽度即可。希望你理解我的意思。 - Shreyash Mahajan
@Akhter:现在我无法给你代码,但是我可以给你一个想法。首先制作适合您屏幕的布局。然后使用特定高度宽度测量按钮的高度宽度,并计算设备的高度宽度。现在,您已经得到了与该设备高度宽度相比的按钮高度宽度比率。现在根据比率计算动态设置设备高度宽度并根据比率计算动态设置按钮的高度宽度。希望你明白我的意思。 - Shreyash Mahajan
Display display = getWindowManager().getDefaultDisplay(); Point size= new Point(); (display).getSize(size); int width = size.x; int height = size.y;mybutton=(Button) findViewById(R.id.Send);Toast.makeText(this, "宽度"+mybutton.getWidth()+"\t"+"高度"+mybutton.getHeight(), Toast.LENGTH_SHORT).show(); - User42590
@Akhter:现在我无法给你代码,但是可以给你一个想法。首先制作适合您屏幕的布局。然后使用特定高度宽度测量按钮高度宽度,并计算设备高度宽度。现在,您已经得到了与该设备高度宽度相比的按钮高度宽度比率。现在根据比率计算动态设置设备高度宽度并根据比率计算动态设置按钮的高度宽度。希望你明白我的意思。 - Shreyash Mahajan
显示剩余3条评论

1

在大多数情况下,您将拥有复杂的布局,或者将变得复杂,因此难以通过编程计算位置。

这也会带来维护上的不利,因为您将无法使用界面工具(如图形布局等),其他人或您自己也无法像在XML中查看视图时那样理解计算。重新组织,更改某个位置可能会很痛苦。

您还将经常使用位图,它们具有固定的大小,如果您通过编程计算尺寸并拉伸它们,它们将不会看起来很好。至少您需要不同的位图集并相应地加载。

例如,使用具有规则的相对布局(如父项上方/底部对齐等)、具有权重的线性布局和dip(密度独立像素)可以提供帮助。只有在其他方式不可行时才应进行程序化布局。或在某些特定情况下,它确实可以使事情变得更加容易。


没错。但是这让我遇到了一个问题,所以我在Stack Overflow上发布了一个悬赏问题。http://stackoverflow.com/questions/10378030/two-devices-similar-densities-yet-different-image-sizes - Snake

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接