2012-10-08 17 views
12

Chúng tôi có thể có xml khác cho cảnh quan và xml khác nhau để định hướng dọc không?Thiết kế khác nhau cho hướng ngang và hướng dọc android

Tôi đang làm việc trên một ứng dụng đơn giản, có vài nút và bản xem trước văn bản, xml có vẻ đẹp, nhưng với cùng xml khi tôi kiểm tra hướng ngang, thiết kế trông không đẹp.

Bất kỳ đề xuất nào được đánh giá cao .. Cảm ơn bạn.

Trả lời

34

Có ofcourse.

Bạn sẽ phải tạo hai phiên bản tệp xml và đặt trong thư mục bố cục-cổng và bố cục đất trong thư mục res.

ví dụ:

res/layout [Portrait Mode; default] 
main.xml 
res/layout-land [Landscape Mode] 
main.xml 

Bạn có thể tham khảo thêm hơn trên cùng một lúc http://developer.android.com/training/basics/supporting-devices/screens.html

+0

Xin lỗi vì trả lời trễ! Cảm ơn rất nhiều! hoạt động tuyệt vời! :) – Aadi

5

Nếu bạn muốn thực hiện một bố trí cho cảnh quan sau đó đặt nó trong

res -> layout-land thư mục.

Cả hai tên của xml phải giống nhau với tên được sử dụng cho dọc và ngang.

+0

Xin lỗi vì trả lời muộn! Cảm ơn rất nhiều ! :) – Aadi

1
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_screen_orientation_app); 
    if(getResources().getDisplayMetrics().widthPixels>getResources().getDisplayMetrics(). 
      heightPixels) 
     { 
      Toast.makeText(this,"Screen switched to Landscape mode",Toast.LENGTH_SHORT).show(); 
     } 
     else 
     { 
      Toast.makeText(this,"Screen switched to Portrait mode",Toast.LENGTH_SHORT).show(); 
     } 
    } 
+1

cố gắng thêm một số giải thích thay vì chỉ thêm đoạn mã làm câu trả lời – user2720864

+0

Mã này không phải là onStart()? Tôi không nghĩ onCreate() được gọi khi chuyển thiết bị. –

+0

Al Lelopath, khi thiết bị được xoay, hoạt động sẽ bị xóa hoàn toàn. OnDestroy được gọi, sau đó Activity được khởi động lại. Vì vậy, có, onCreate được gọi lại – jb15613