2012-08-02 58 views
2

所以,我正在考虑使用百分比,例如,在边际。百分比使用情况如何?

我们可以使用叠加按照dpi大小来分隔我们的布局,但为什么我们不能使用百分比?

类似的东西:

Display display = getWindowManager().getDefaultDisplay(); 

float width = display.getWidth(); 
float height = display.getHeight(); 

//20% of left margin 
float imageMarginLeft = (width * 20)/100; 

,然后将该保证金的形象,或任何元素。

这是不好的?我只想讨论一下。

谢谢。

+2

在这里发表此代码以供审查:http://codereview.stackexchange.com/ – Nerd 2012-08-02 17:25:17

+0

谢谢,并对错误的地方抱歉! – Otuyh 2012-08-02 17:26:46

回答

2

LinearLayout可以通过使用权重来完成百分比。

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="100"> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="20" 
     android:text="Button" /> 
</LinearLayout> 

基于权重的布局妨碍了性能,如果你使用它们中的很多,尤其是当它们嵌套时。以编程方式进行编程也可能会影响布局时间。

编辑 既然你正在寻找讨论,我会建议基于百分比的布局一般是不好的。问题在于Android的物理屏幕大小差异很大。不可思议屏幕的一半与Galaxy S III屏幕的一半大不相同,这与Nexus 7屏幕的一半大不相同。使用dp单元的好处是它们与物理尺寸有关的东西在屏幕上。它使得按钮在微小的屏幕上保持微小(并且难以选择),并且防止它们在大屏幕上变得巨大(并且难看)。

+0

嘿,谢谢你的回答! 即时寻找实际上正是这种方法来设置图像/按钮/等的大小,我们有。如果显示器是480x320,则图像将基于此尺寸的百分比。 1200x720一样。但是你告诉我这会影响我的表现,对吧? – Otuyh 2012-08-02 18:35:15