2012-02-12 9 views
0

私はこれを試してみるのに何時間も費やしてきました。 私は明らかに単純なものが欠けていますが、実際に試しています。Androidのレイアウト - ウェイティング

問題を見つけるために私のコードを非常に基本的に切り捨てました。

レイアウトにはバックグラウンドがあり、上半分はすばらしいグラフィックスで、上半分の下にはボタンがあることを望んでいます。 背景が上にあり、最初の線図(縦)です。 この中には、2つの垂直線形レイアウトがあります。

トップ縦レイアウトは、1 下垂直レイアウトの量を有し、これは、トップレイアウトは、画面の半分を取るべきだと、私には意味1.

の量を有しています。 2番目のレイアウトに入っているボタンは、画面の残りの部分を占有しても問題ありません。 しかし、2番目のレイアウトに追加を開始すると、画面の半分を占めることなく、上半分のスペースを占有し始めます。

私がやりたいことは、画面の下半分に4つの画像ボタンを追加し、水平に集中させることです。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@drawable/menubackground" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <!-- Layout 1, the top half --> 
    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <!-- Layout 2, the bottom half, containing buttons --> 
    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" > 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:src="@drawable/playbtnimg" android:layout_weight="1"/> 

     <ImageButton 
      android:id="@+id/imageButton2" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:src="@drawable/achievementsbtnimg" android:layout_weight="1"/> 
    </LinearLayout> 

</LinearLayout> 

これら二つのボタン、今縦のスペースの約2/3位を取るし始めている:

は、ここに私のコードです。彼らは画面の上半分に入るべきではありません。 私はこの方法でレイアウトを使用しようとしているので、異なる画面サイズで動作します。 画像を線形レイアウトのセルに収まるように拡大し、両面の上部でカットしないようにしたいと思います。

ご迷惑をおかけして申し訳ありません。

答えて

0

親ここLinearLayout

はそれが

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="@drawable/menubackground" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:weightSum="2" 
android:orientation="vertical"> 

同じのようになります。つまりこれは、さらに役立つだろうLinearLayout持つボタン

のためになるあなたのルート要素にweightsum属性を追加します。あなたはアンドロイドのドキュメントでもっと読むことができます

+0

このヘルプに感謝します。私は収容レイアウトに2の重みを置き、その中の2つのレイアウトに1の重みを付けます。私はまた、ボタンを含む下のレイアウトに1の重み合計を入れて、ボタンに0.25の重みを入れても、ボタンは半分以上を占めます。 – ThePerson

+0

オク、もっと基本的なものになり、アンドロイドからhello linearレイアウトファイルを引き出しました: http://developer.android.com/resources/tutorials/views/hello-linearlayouthtml 私が見つけたのは、LinearLayoutの上に背景を置くと、一番上の色が50%以下です。 これはバックグラウンドとはどのような関係がありますか?わかりません。 – ThePerson

+0

私が見ているのは、バックグラウンドを単なる色にするといいです。私が背景イメージを置くとすぐに...突然、それは正しくありません。何か案は?私はさらに、Androidで推奨されているサイズに写真を拡大するようにしました – ThePerson

0

これを追加してみてくださいImageButtonsをバックグラウンドとして使用しています。

android:adjustViewBounds="true" 

同様の問題を修正しました。

うまくいくとうれしいコーディング。

+1

答えが見つかりました。 私には2つの問題がありました。 1)私は画像のボタンを拡大/縮小するためにスケールを使用しませんでした。 2)デバイス上で試してから、友人用のデバイスを試してみました。設定はeclipses GUIで表示されていましたが、デバイス上ではEclipse上とは異なることがわかりました。それはそこに100%正確ではないようだ。 あなたの提案をお寄せいただき、ありがとうございました。 – ThePerson

関連する問題