2012-09-06 40 views
6

Tôi khá mới trong Android, vì vậy nó có thể là một câu hỏi ngu ngốc, nhưng ở đây nó đi.Android: Chiều cao bố cục theo phần trăm độ phân giải màn hình

Tôi có một RelativeLayout hoạt động. Trong layout này, tôi có một Layout khác ở phía dưới màn hình. Đôi khi tôi giấu nó hoặc làm cho nó có thể nhìn thấy, điều này không quan trọng. Có thể làm cho chiều cao của bố cục khác cho phép nói 27% tổng chiều cao của màn hình không? Ý tưởng là giữ nội dung khác, ngoại trừ bố cục này trên màn hình.

Có ai đã thử một cái gì đó như thế này không?

+0

Bạn có nghĩa là để nói rằng bạn muốn hai phần của màn hình của bạn - đầu được 73% của màn hình của bạn và thứ hai là 27%? Hoặc bạn có nghĩa là bạn muốn một cái nhìn mà ngồi bên trong một cái nhìn khác bao gồm dưới cùng 27% của toàn bộ cha mẹ khi nhìn thấy được? – brianestey

Trả lời

22

LinearLayout có thể xử lý điều này qua android:layout_weight. Ví dụ, đây là một cách bố trí có chứa ba Button widget, chiếm 50%, 30%, và 20% chiều cao, lần lượt là:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="50" 
     android:text="@string/fifty_percent"/> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="30" 
     android:text="@string/thirty_percent"/> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="20" 
     android:text="@string/twenty_percent"/> 

</LinearLayout> 

Tuy nhiên, bạn có thể không chỉ đơn giản tuyên bố rằng một widget tùy ý ở một điểm tùy ý trong tệp bố cục của bạn nên chiếm tỷ lệ phần trăm tùy ý của kích thước màn hình. Bạn được hoan nghênh thực hiện tính toán đó trong Java và điều chỉnh số LayoutParams của tiện ích của bạn khi cần thiết.

+0

Giải pháp hoàn hảo –

1

bạn có thể thử điều này, phức tạp hơn nhưng hữu ích.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/parent_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/app_name" /> 

<LinearLayout 
    android:id="@+id/parent_of_bottom_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_alignParentBottom="true" > 

    <LinearLayout 
     android:id="@+id/content_view" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="27"> 

     //Add your content here 

    </LinearLayout> 
</LinearLayout> 

+0

bạn có thể mở rộng về cách thức hoạt động và lý do tại sao nó trả lời câu hỏi? –

+0

Bạn không thể sử dụng android: layout_weight bên trong RelativeLayout vì vậy, tôi đã sử dụng LinearLayout để làm cho tỷ lệ weignt bên trong bố cục tương đối, tôi tìm thấy giải pháp từ dự án mã của tôi, vì vậy tôi đã chia sẻ nó. – wSakly

+0

Cảm ơn, đó là một cách tiếp cận thú vị cho vấn đề. –

Các vấn đề liên quan