2011-06-21 8 views
1

一日中検索したところ、貧弱な解決策を思いついたと思います。
私は3つのImageButtonを画面の右側に配置します。 I以下のコードでandroid can can android:重力しますか?

は、ユーザーが、彼らはこの位置権を持っていないであろう大きな画面を持っている場合、私はしたいが、
結果を得る
中心ちょうど中心位置を超えていませんか..?

私は一日中android:gravityを試しましたが、私はそれを使ってできることはすべて、 の3つのボタンを非常にきれいにすることです。

私は3つのボタンを常に画像の上にある の位置にとどめるようにする必要があります。 私はhdpi、mdpi、xhdpiフォルダに3つの異なるサイズのボタンイメージを持っています。

 <RelativeLayout 
     android:id="@+id/rightRelativeLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     > 
      <ImageButton 
       android:id="@+id/btn_A" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="100dp" 
       android:text="A" 
       android:src="@drawable/drawer_1" 
       android:background="@android:color/transparent" 
       android:layout_alignParentRight="true" 

      /> 
      <ImageButton 
       android:id="@+id/btn_B" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="B" 
       android:src="@drawable/drawer_1" 
       android:background="@android:color/transparent" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/btn_A" 
      /> 
      <ImageButton 
       android:id="@+id/btn_C" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="C" 
       android:src="@drawable/drawer_1" 
       android:background="@android:color/transparent" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/btn_B" 

      /> 
     </RelativeLayout> 

右側に配置された3つのボタンと、もちろん私の娘の写真。

+0

[アンドロイドの可能な複製] RelativeLayoutを配置するのにlayout_weightを使用できますか?](http://stackoverflow.com/questions/6428747/android-can-i-use-layout-weight-to-position-relativelayout) – Erik

答えて

1

1つのオプションは、(簡単のため)のLinearLayoutの中にすべての3つのボタンを配置し、プログラムによってこのコンテナのレイアウトを設定することです。

getResources().getDisplayMetrics().heightPizelsを使用して画面のサイズを確認し、それに応じて上余白を設定することができます。

+0

すぐにお試しいただきありがとうございます – Erik

+0

私はhowRayを使ってrightRelativeLayout.addViewを知っています。動的に作成されたビューを追加するには質問がありますが、私はrightRelativeLayout.layout(l、t、r、b)を使用するべきです。私はビューを追加しないだけレイアウトの高さを変更します。 l =左、t =上、r =右。 – Erik

+0

@Erikあなたはレイアウトの高さを変更していません。上の余白を変更するだけです。 –

0

あなたはRelativeLayout内側のLinearLayoutを追加し、のLinearLayoutに次のプロパティを使用することができます。

android:layout_alignParentRight="true" 
android:layout_gravity="center_vertical" 

EDIT:[OK]を、私はいくつかのテストを行って、あなたがすることなく、欲しいものを行う方法を見つけましたプログラム的にそれをスタイリングの使用は、ここではXMLです:

<RelativeLayout 
    android:id="@+id/rightRelativeLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginBottom="80dip" 
    > 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true"> 
     <ImageButton 
      android:id="@+id/btn_A" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="A" 
      android:src="@drawable/icon" 
      android:background="@android:color/transparent" 

     /> 
     <ImageButton 
      android:id="@+id/btn_B" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="B" 
      android:src="@drawable/icon" 
      android:background="@android:color/transparent" 
     /> 
     <ImageButton 
      android:id="@+id/btn_C" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="C" 
      android:src="@drawable/icon" 
      android:background="@android:color/transparent" 

     /> 
     </LinearLayout> 
    </RelativeLayout> 
+0

ありがとうしかし、私はボタンを中心にしたくない。 – Erik

+0

さて、あなたの最良の賭けは、ザックが言ったことを行い、プログラム的にマージンを設定することです。 – JDx

+0

私は自分の答えを編集しました。お役に立てれば! – JDx

関連する問題