2013-06-28 31 views
5

Tôi đã tạo bố cục từ xml với bố cục máy tính bảng có kích thước trình mô phỏng. Nhưng khi mở trên cùng một bố cục trên thiết bị điện thoại Android thì mọi thứ bị bóp méo, Vì vậy, tôi có thể tạo bố cục xml sẽ hoạt động tốt ở cả điện thoại và máy tính bảng. Xin vui lòng đề nghị tôi, đánh giá cao câu trả lời của bạn.Tôi làm cách nào để bố cục hoạt động trong cả Máy tính bảng và điện thoại?

+0

bạn sẽ phải thiết kế bố cục và bản vẽ cho cả hai kích thước màn hình. kiểm tra tài liệu có tất cả thông tin bạn cần http://developer.android.com/guide/practices/screens_support.html – Raghunandan

+2

Tôi đã cung cấp câu trả lời chi tiết về điều này tại đây: http://stackoverflow.com/a/12742888/1369222 –

+0

Xem [this] (http://stackoverflow.com/questions/14078460/android-how-to-scale-a-layout-with-screen-size/19925666#19925666) trả lời. –

Trả lời

11

Làm cho tài nguyên của bạn như thế này.

res/layout/my_layout.xml // bố trí cho kích thước màn hình bình thường ("mặc định")

res/layout-nhỏ/my_layout.xml // bố trí cho kích thước màn hình nhỏ

res/layout lớn/my_layout.xml // bố trí cho kích thước màn hình lớn

res/layout-xlarge/my_layout.xml // bố trí cho thêm si màn hình lớn ze

res/layout-xlarge đất/my_layout.xml // bố trí cho thêm lớn trong định hướng phong cảnh

res/drawable-mdpi/my_icon.png // bitmap cho mật độ trung bình

res/drawable-hdpi/my_icon.png // bitmap cho mật độ cao

res/drawable-xhdpi/my_icon.png // bitmap cho dens cao thêm ity

Để biết thêm reference. reference1.

Thêm này trong manifest.xml bạn

<supports-screens 
      android:smallScreens="true" 
      android:normalScreens="true" 
      android:largeScreens= "true" 
      android:anyDensity="true" 
    /> 

Hy vọng điều này sẽ giúp bạn.

+0

kích thước hình ảnh sẽ giống nhau trong tất cả thư mục có thể kéo? hoặc sẽ được putted kích thước khác nhau của hình ảnh trong mỗi và bố trí? –

+0

bạn nên đặt kích thước hình ảnh khác nhau. theo mật độ .. vì hình ảnh nhỏ chỉ phù hợp với màn hình nhỏ. nhưng nó sẽ không phù hợp với màn hình lớn hơn vì nó trông rất nhỏ.vì vậy chúng tôi đang di chuyển như thế này. tốt hơn là đặt kích thước hình ảnh khác nhau. – Nirmal

+0

@Nirmal Xin chào, tôi cũng đã sử dụng nhưng không nhận được giải pháp. Thiết bị của tôi luôn hiển thị bố cục bình thường. Tôi đã thêm quyền này 'android: configChanges = "orientation | keyboardHidden | screenSize | screenLayout"' Điều này sẽ ảnh hưởng đến bất cứ điều gì. – SathishKumar

0

Bạn có thể tạo hai bố cục riêng biệt cho điện thoại và Tab của mình. Những gì bạn cần làm là tạo tệp bố cục với "tên tệp" cho điện thoại và tab tạo tệp bố cục bằng cách nhấp chuột phải vào dự án và chọn tệp> bố cục xml android> rồi nhập "tên tệp", nhấp vào tiếp theo và chọn Kích thước từ ngăn bên phải và chọn x-large từ danh sách thả xuống. Tệp bố cục của bạn cho tab được tạo riêng biệt để tùy chỉnh bố cục của bạn một cách riêng biệt.

1

Sử dụng Bảng và trọng số để tạo tỷ lệ khung hình tương tự hoặc tương tự trên điện thoại sẽ có trên máy tính bảng. Tôi sẽ chỉ tạo các Layouts khác nhau như một phương sách cuối cùng.

<TableRow 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight=".33" > 
      //Note: You will need some other TableRows fill in the difference of this Table Row..2 more of the same will equal 1. 
     <TextView 
      android:id="@+id/x" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="3dp" 
      android:layout_weight=".33" 
      android:background="@drawable/buttonx" 
      android:gravity="center" 
      android:text="Words" 
      android:textColor="#ffffff" 
      android:textSize="16sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/x2" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="3dp" 
      android:layout_weight=".33" 
      android:background="@drawable/buttonx2" 
      android:gravity="center" 
      android:text="Other Words" 
      android:textColor="#ffffff" 
      android:textSize="16sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/x3" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_marginLeft="3dp" 
      android:layout_weight=".33" 
      android:background="@drawable/buttonx3" 
      android:gravity="center" 
      android:text="More Words" 
      android:textColor="#ffffff" 
      android:textSize="16sp" 
      android:textStyle="bold" /> 

    </TableRow> 
+0

cách thức này giúp tôi? –

+0

Điều này làm cho nội dung của bạn nằm trong phần trăm của trang. Vì vậy, cho dù đó là trên một màn hình TV hoặc thiết bị nhỏ nhất tỷ lệ khung hình vẫn như cũ. – SmulianJulian

+0

Mmmmm tôi muốn giới thiệu bạn sử dụng đoạn ... –