2012-02-16 14 views
0

私は6つのボタンを備えたレイアウトを持っています。それらはすべて72x72dipのサイズなので、小さな画面では大きく、逆も同様です。画面サイズに相対的な画像の伸張

この問題にはどのように対処できますか?私は、ボタンが比較的同じサイズ(例えば、画面の幅の10%)になるようにしたいが、どうやって行うのか分からない。

これは私のレイアウトがどのように見えるかです:

enter image description here

レイアウトのソースコードは、hereを見つけることができます。

+0

。誰も犯人を見つけるためにそれを掘るだろう;) – Adrian

+0

私はすでにやりました。ポストされたコードはボタン用です。また、この特定のコードに関する問題ではなく、一般的な解決策です。 – Force

答えて

0

1 - あなたはイメージビューをlayout_width &の高さ72dipに修正しましたか? 2 - 通常は72dipはすべての画面サイズで同じです...しかし、あなたはまだ画像の解像度を3(またはXHDPIをサポートしている場合は4)にすることができます...

2 - あなたのために4枚の差分を追加できますDrawable :

2.1描画可能

2.2描画可能LDPI

2.3描画可能MDPI

2.4描画可能-hdpi

はあなたのイメージのために、以下の比率を考慮してください。 LDPIは3 MDPIは4 hdpiだからあなたはisealy比1.5と2を適用する他の画像のサイズを変更することができるように(だけで割る、最初HDPIイメージを作成することを確認してください6

であるです例えばLDPIの場合は2)。

3.ちょっと、どうしてあなたは自分ですべてをやったのですか?アンドロイド4.0に登場しているようですね、Androidの新しい「DashBoard」クラスを使ってみませんか?

+0

はい、私は既に異なる画面サイズの異なる画像サイズを持っていますが、それらはすべて72x72dipです。 – Force

0

私は通常、幅と高さをwrap_contentに設定し、ImageButtonウィジェットでlayout_weightを調整することで、各ボタンが同じ容量を占めるようにします。私は通常彼らがうまく整列するようにscaleType="center_inside"を行います。その後、必要に応じて余白を付けてTableViewの端を囲みます。

0

いくつかの迅速な観察:

a。 TableLayoutは必要ありません。LinearLayoutを使用してください。

b。あなたは

android:drawableTop="@drawable/" 

Cを使用して、それにボタンや画像を使用することができ、別々のImageViewのとのTextViewを必要としません。どのビューの幅/高さにも絶対値を使用しないでください。したがって、wrap_contentを使用してください。

サンプルレイアウトは次のようにする必要があります:問題の唯一のコードを投稿してください

<LinearLayout 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:orientation="vertical"> 

<!-- Row 1 --> 
<LinearLayout 
    android:layout_height="0dp" 
    android:layout_width="fill_parent" 
    android:layout_weight="1.0" 
    android:orientation="horizontal"> 

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="0" 
    android:layout_weight="1.0" 
    android:text="Preferences" 
    android:drawableTop="@drawable/Preferences" /> 

<Button 
    android:layout_height="wrap_content" 
    android:layout_width="0" 
    android:layout_weight="1.0" 
    android:text="Preferences" 
    android:drawableTop="@drawable/Preferences" /> 

</LinearLayout> 

    . 
    . 
    . 
</LinearLayout> 


</LinearLayout> 
+0

ありがとうございました! **(a)**私はそれを試みましたが、私はそれを働かせることができませんでした。 **(b)**このアプローチは、ボタンではなくクリック可能なレイアウト(クリックで素敵な色の変更があるため)を使用する方が好きです** **(c)**質問を投稿する前に、 wrap_content'、しかし、明らかに私はコードを投稿する前にそれを変更することを忘れてしまった。 – Force

+0

どのようにLinearLayoutのユーザーの答えを確認してください.. – PravinCG

+0

それは完璧に動作します!あなたの答えはありがとうございます:) – Force

関連する問題