Android 以编程方式或通过xml设置视图宽度和高度

Android 以编程方式或通过xml设置视图宽度和高度,android,Android,我注意到在在线教程中,人们对任何视图的宽度和高度都使用特定的dp值 例如,android:layout width=“20dp” 我想知道,既然我们有这么多的设备和密度,那么通过编程来确定这个值会更好吗? 例如,我想要一个特定的图像占据屏幕宽度的20%,然后我会得到屏幕宽度,乘以20%,并相应地设置宽度 你知道dp应该使它在任何屏幕上的大小相等,不管密度是多少,但这不是许多设备的情况,例如galaxy s2和galaxy note 你能告诉我我的方法是正确的吗 对于dp无法充分补偿的任何内容,您

我注意到在在线教程中,人们对任何视图的宽度和高度都使用特定的dp值

例如,android:layout width=“20dp” 我想知道,既然我们有这么多的设备和密度,那么通过编程来确定这个值会更好吗? 例如,我想要一个特定的图像占据屏幕宽度的20%,然后我会得到屏幕宽度,乘以20%,并相应地设置宽度

你知道dp应该使它在任何屏幕上的大小相等,不管密度是多少,但这不是许多设备的情况,例如galaxy s2和galaxy note


你能告诉我我的方法是正确的吗

对于dp无法充分补偿的任何内容,您可以将不同分辨率的图像插入备用可绘制文件夹中。它们被广泛地命名为你的应用程序将接触到的不同屏幕大小,android将自行进行相应的调整。根据我的经验,我试图用xml尽可能多地绘制图形,因为我发现它远没有那么麻烦

更好的方法是在XML中使用线性布局,并使用所需的值在子项中设置布局权重。您也可以在线性布局中使用权重总和来设置最大权重

e、 g

线性权重总和=100,内部为布局权重=20的文本视图。这意味着您的textview拥有线性视图值的20%

p、 s:对于水平方向,重量=宽度,宽度=0dp

对于垂直,重量=高度,高度=0


我希望能帮助你^^

这是一个很好的答案,我会接受它:)。但是有一个问题,如果我使用相对布局来定位事物,我仍然可以使用布局和吗?权重属性仅用于线性布局,但是如果需要,可以同时使用线性布局和相对布局。你可以试试^^