2013-06-28 9 views
5

Wykonałem układ z xml przy użyciu układu tabletu o rozmiarze emulatora. Ale po otwarciu w tym samym układzie na urządzeniu z systemem Android, to wszystko jest zniekształcone, więc mogę zrobić układ xml, który będzie działał dobrze zarówno w telefonie urządzenia, jak i na tablecie. Proszę, zasugeruj mi, doceń swoją odpowiedź.Jak mogę utworzyć układ, który będzie działał zarówno na tablecie, jak i telefonie?

+0

Będziesz musiał zaprojektować swoje układy i rysunki dla obu rozmiarów ekranu. sprawdź dokumenty ma wszystkie potrzebne informacje http://developer.android.com/guide/practices/screens_support.html – Raghunandan

+2

Podałem szczegółową odpowiedź na ten temat tutaj: http://stackoverflow.com/a/12742888/1369222 –

+0

Zobacz odpowiedź [this] (http://stackoverflow.com/questions/14078460/android-how-to-scale-a-layout-with-screen-size/19925666#19925666). –

Odpowiedz

11

Złóż taki zasób.

res/layout/my_layout.xml // układ dla wielkości normalnego ekranu ("default")

RES/układ niedrobnokomórkowego/my_layout.xml // układ dla wielkości małego ekranu

res/layout-large/my_layout.xml // układ dla wielkości duży ekran

res/layout-XLarge/my_layout.xml // układ o bardzo dużym ekranem Si ZE

res/layout-XLarge-land/my_layout.xml // układ dla bardzo duży w orientacji poziomej

res/odkształcalne-MDPI/my_icon.png // bitmapy o średniej gęstości

Res/odkształcalny-hdpi/my_icon.png // bitowej wysokiej gęstości

Res/odkształcalny-xhdpi/my_icon.png // bitowej dodatkowych wysokich nor ity

Więcej reference. reference1.

Dodaj ten w manifest.xml

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

nadzieję, że to pomoże.

+0

Rozmiar obrazu będzie taki sam we wszystkich folderach do rysowania? lub zostanie ustawiony inny rozmiar obrazu w każdym układzie? –

+0

powinieneś umieścić inny rozmiar obrazu. według gęstości .. ponieważ małe obrazy pasują tylko do małego ekranu. ale nie będzie pasował do większego ekranu, ponieważ wygląda na bardzo mały.więc poruszamy się w ten sposób. lepiej umieścić inny rozmiar obrazu. – Nirmal

+0

@Nirmal Cześć, używam tego również, ale nie otrzymuję rozwiązania. Moje urządzenie zawsze pokazuje tylko normalny układ. Dodałem to uprawnienie "android: configChanges =" orientacja | keyboardHidden | screenSize | screenLayout "'To wpłynie na wszystko. – SathishKumar

0

Możesz utworzyć dwa oddzielne układy dla telefonu i Tab. Musisz utworzyć plik układu z "filename" dla telefonu i utworzyć zakładkę, klikając prawym przyciskiem myszy projekt i wybierając nowy> plik układu XML xml, a następnie wpisać "nazwę pliku", kliknąć Dalej i wybrać Rozmiar z prawy panel i wybierz x-large z rozwijanej listy. Twój plik układu dla karty jest tworzony osobno, więc spersonalizuj swój układ.

1

Użyj tabel i grubości, aby utworzyć ten sam lub podobny współczynnik proporcji na telefonie, który byłby na tablecie. W ostateczności utworzyłem tylko inne układy.

<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

jak to mi pomóc? –

+0

Powoduje to, że zawartość twojego układu stanowi procent strony. Tak więc, niezależnie od tego, czy jest to ekran TV, czy najmniejsze, proporcje obrazu są wciąż takie same. – SmulianJulian

+0

Mmmmm polecam użycie fragmentu ... –

Powiązane problemy