1

デザイナーからの UI デザインがあり、マップ全体に非線形に配置された複数のボタンが配置された背景マップが存在します。現在RelativeLayout、マップと同じ大きさのに配置し、などで使用margin-leftしています。margin-topdip

これは問題なく機能しますが、マップが縮小される原因となる非常に小さな画面のユーザーも考慮する必要があります。私の相対的なレイアウトはそれに合わせてスケーリングされますが、余白の値はもちろんそうではありません。

だから私は疑問に思っています、どうすればいいですか?次のようなパーセンテージを使用してこれらのボタンをレイアウトすることをお勧めします

left="30%"
top="50%"

そのようなことを可能にするAndroidの何かがありますか? それ以外の場合は、そのためのカスタム レイアウト クラスを考え出す必要があります。

視覚的表現: (もちろん、実際には 6 行ではなく、x または y の位置で部分的に重なっています)。実際には、ボタンとして押すことができる位置マーカーを備えた建物の実際の (抽象的な) マップです。

 -------------------------
 |    x              x   |
 |           x           |
 |                       |
 |      x                |
 |                 x     |
 |           x          x|
 -------------------------
4

2 に答える 2

1

カスタム ViewGroup を必要としない複雑な方法を次に示します。左 30%、上 40% にボタンが必要だとします。

FrameLayout 
   View with background, match parent
   LinearLayout orientation=horizontal, match parent 
     View layout_width=0dp, layout_weight=30, height=match_parent
     LinearLayout orientation=vertical, width=0dp, weight=70, hieght=match
       View layout_height=0dp, layout_weight=40, width=match_parent
       FrameLayout layout_height=0dp, layout_weight=60
         Button
于 2013-06-10T18:16:20.243 に答える
0

Dimensionデバイスのサイズに応じて余白/パディング/サイズを変更できるように、関連するレイアウト バケットに配置されたリソース ファイルを使用します。

( http://developer.android.com/guide/topics/resources/more-resources.html#Dimension )

( Android の xml ファイルに寸法を保存する)

于 2013-06-10T17:10:09.483 に答える