2012-04-01 14 views
0

私はアンドロイドのアプリケーションを開発しています。私の主なレイアウトはRelativeLayoutです。小さなデバイスでAndroidのレイアウトがミスストレッチされています

大画面エミュレータでデバッグ用にアプリケーションを開くと、すべて正常に動作します。 しかし、QVGAデバイスでそれを開くと、レイアウトが歪んでいるように見えます。

実際にすべての画面サイズに対して新しいレイアウトを作成する必要がありますか?私は...アンドロイドは自動的にレイアウトに合わせて、すべてを伸ばすことができますいくつかの場所で見てきました

Developer.android.comは言う:

デフォルトで

は、Androidは現在のデバイスの画面に合わせてアプリケーションのレイアウトのサイズを変更します。

http://developer.android.com/guide/practices/screens_support.html

あなたはレイアウトが小さなデバイスイオン歪んで見えるなぜ私が把握助けてくださいもらえますか? 画像が伸びても、レイアウトはうまく表示されません。

ありがとうございます!

Big Screen Image http://www.interload.co.il/upload/6549026.png Small Screen Image http://www.interload.co.il/upload/9617759.png

編集:問題のあるページの XMLコード。 すべてのグラフィックスは "drawable-hdpi"フォルダにありますが、問題は画像そのものではなく、レイアウトにあります。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/background" xmlns:android1="http://schemas.android.com/apk/res/android"> 
<ImageView 
    android:id="@+id/selectionHead" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:src="@drawable/header" /> 


<ImageView 
    android:id="@+id/chooseFormatTxt" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/selectionHead" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="20dp" 
    android:src="@drawable/step1_choose_format" /> 

<ImageView 
    android:id="@+id/videoBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="42dp" 
    android:onClick="VideoClick" 
    android:src="@drawable/step1_video" /> 


<ImageView 
    android:id="@+id/orTxt" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/videoBtn" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="19dp" 
    android:src="@drawable/step1_or" /> 

<ImageView 
    android:id="@+id/audioBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/orTxt" 
    android:layout_alignLeft="@+id/videoBtn" 
    android:layout_marginBottom="22dp" 
    android:layout_centerHorizontal="true" 
    android:onClick="AudioClick" 
    android:src="@drawable/step1_audio" /> 

<ImageView 
    android1:id="@+id/step1Share" 
    android1:layout_width="wrap_content" 
    android1:layout_height="wrap_content" 
    android1:layout_alignBottom="@+id/selectionHead" 
    android1:layout_alignParentRight="true" 
    android:layout_marginBottom="10dp" 
    android:layout_marginRight="5dp" 
    android1:src="@drawable/share" /> 

</RelativeLayout> 
+0

を異なる値を使用して、あなたはハードあなたのレイアウトのthats yのその表情異なる振る舞いで画像の位置をコード化されていました。 –

+0

ここに情報が不足しています - あなたのレイアウトXMLを投稿して、あなたのドロウアブルがどのフォルダにあるのかを教えてください。 – areyling

+0

質問があったときにさらに具体的にして、問題の詳細を提供してください。 – Ishu

答えて

2

私は実際にすべての画面サイズのための新しいレイアウトを作成する必要がありますか?

既存のレイアウトが機能せず、別の方法で問題を解決する代わりに新しいレイアウトを作成する場合は、新しいレイアウトを作成する必要があります。

なぜレイアウトが小さなデバイスで歪んで見えるのか理解してもらえますか?

  • ビデオボタンをレイアウト
  • 「または」行の底部の上方42dpです:

あなたのレイアウトは、あなたがすることを告げ、正確に何をやっている限り、まったく問題あり19dpビデオボタン

  • 上方オーディオボタンは83dpに加え、様々な画像の大きさである「または」ライン
  • 上記22dp、whicであります明らかにそれは高すぎます。

    それはあなたがそれが小さな画面上で何をしたいのかでない場合は、次のいずれか

    • -smallデバイスごとに異なるレイアウトを思い付く、または
    • 使用寸法資源の代わりに、ハードコードされた値、そして... -smallデバイス、または
    • ためにそれらのディメンションに
    +0

    ありがとうa-lot。あなたは私の問題を解決しました。 –