2013-06-28 5 views
5

エミュレータサイズのタブレットレイアウトでxmlからレイアウトを作った。しかし、アンドロイドの電話機で同じレイアウトで開いたときにすべてのものが歪んだので、デバイスの電話機とタブレットの両方でうまく動作するxmlレイアウトを作成できます。あなたの答えをありがとう。タブレットと携帯電話の両方で動作するレイアウトを作成するにはどうすればよいですか?

+0

あなたは両方の画面サイズのレイアウトとドロワーブルをデザインする必要があります。 docsに必要なすべての情報があることを確認してください。http://developer.android.com/guide/practices/screens_support.html – Raghunandan

+2

私はここで詳しい回答をしています:http://stackoverflow.com/a/12742888/1369222 –

+0

[this](http://stackoverflow.com/questions/14078460/android-how-to-scale-a-layout-with-screen-size/19925666#19925666)の回答を参照してください。 –

答えて

11

このようなリソースを作成します。通常の画面サイズの

RES /レイアウト/ my_layout.xml //レイアウト( "デフォルト")小さな画面サイズ

ため//レイアウト

RES /レイアウト小/ my_layout.xml

大画面サイズ特大画面SIのため//レイアウト

RES /レイアウトXLARGE/my_layout.xmlため//レイアウトRES /レイアウト大/ my_layout.xml ZE

のres /レイアウトXLARGE-ランド/ my_layout.xml //レイアウト

のres /描画可能MDPI/my_icon.png //ビットマップ横向きで特大のための媒体の密度

のres /超高洞穴のために//ビットマップ高密度

のres /描画可能-xhdpi/my_icon.pngための描画可能-hdpi/my_icon.png //ビットマップity

詳細referencereference1

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

あなたのmanifest.xmlでこれを追加し、これはあなたを助けることを願っています。

+0

イメージサイズはすべてのドロウアブルフォルダで同じになりますか?またはレイアウトごとに異なるサイズの画像が出力されますか? –

+0

異なるサイズの画像を配置する必要があります。小さな画像は小さな画面にしか収まらないからです。それは非常に小さく見えるので、それは大きな画面に合っていません。私たちはこのように動いています。異なるサイズの画像を置く方がよいでしょう。 – Nirmal

+0

@Nirmalこんにちは、私もこれに使用されていますが、解決策は得られません。私のデバイスは常に通常のレイアウトしか表示しません。私はこの許可を追加しました 'android:configChanges = "orientation | keyboardHidden | screenSize | screenLayout"これは何かに影響します。 – SathishKumar

0

携帯電話とタブの2つの別々のレイアウトを作成できます。あなたがする必要があるのは、電話機用の "ファイル名"を持つレイアウトファイルを作成することです。タブでは、プロジェクトを右クリックしてnew> android xml layout file>を選択してレイアウトファイルを作成し、ドロップダウンリストからx-largeを選択します。レイアウト用のタブファイルは別々に作成されるため、レイアウトを個別にカスタマイズできます。

1

テーブルとウェイトを使用して、タブレット上にある電話機に同じまたは類似のアスペクト比を作成します。私は最後の手段として異なるレイアウトを作成するだけです。

<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

これはどのように私を助けますか? –

+0

これはレイアウト内の内容をページの割合にします。したがって、テレビ画面または最小のデバイスであっても、縦横比は同じです。 – SmulianJulian

+0

Mmmmmフラグメントの使用をお勧めします... –

関連する問題