2010-10-15 105 views
2

我正在制作一个远程应用程序,所以我需要不同数量的按钮,按桌面视图和表格分组。如何在运行时设置按钮的布局宽度?

我可以在设计时通过xml创建修补程序(必须可用),利用布局使所有按钮适合每个分辨率。

但有些按钮需要在运行时创建。 为了使它们的行为与固定行为相同,我需要分配布局宽度 - 高度和重量值。

我在搜索整个文档,但它总是用XML完成的,没有关于运行时/匹配例程的信息。

这甚至可能吗? 还有什么可以创建一个全方位适合的按钮网格?

非常感谢!

回答

4

Button应该从TextView继承setWidth(int pixels)(因为它扩展了它)。你尝试过使用它吗?例如: -

myButton.setWidth(100); 
myButton.setHeight(50); 
//Now myButton is 100px wide and 50px tall 

确保您展开下拉为“继承的方法”,当你正在寻找在文档中Button页面上的方法。您可能还想展开“继承的属性”。

编辑:好吧,我会咬 - 如果你想保持屏幕独立性,你需要使用dip单位。该文档讨论这个here,但它会像下面这样:

//Find screen density scale factor 
final float scale = getContext().getResources().getDisplayMetrics().density; 

int width = (int)(100 * scale) // Or whatever width you want 
int height = (int)(50 * scale) // Or whatever height you want 
myButton.setWidth(width); 
myButton.setHeight(height); 

注意:这是一个例子。这不是要生产的代码。您可能没有名为myButton的按钮。请适应您的具体需求或阅读链接的文档以获得更多帮助等。

+1

不要使用绝对像素 – Falmarri 2010-10-15 17:45:30

+1

@Falmarri:我打算假设您的意思是dip单位是实现此目的的最佳方式,尽管你的评论实在太含糊不清,并且特别有用,所以我可能完全错误。无论如何,我会添加一些缩放代码,由于问题的微不足道的性质,我原先忽略了它。不过,我也建议您考虑发布更多有用的评论,因为一次性“不这样做”的评论确实无助于讨论,但这取决于您。 – eldarerathis 2010-10-15 18:37:37

相关问题