0

その上に多くの画像と TextView を配置したい画像を含むレイアウトを作成したいと考えています。RelativeLayout を使用して画像を重ねて配置する方法は知っていますが、希望する方法で画像を配置する方法はありますか? たとえば、「背景」画像に特定の黒い円がある場所に画像を正確に配置したい。android:layout_marginTop などの値で遊んでも、すべての画面で効果があるようには見えません。

では、これらの問題を処理する適切な方法はどれですか?

編集: 画像をアップロードできませんが、ここに必要なものの非常に簡単なスケッチをアップロードしました: http://imageshack.us/photo/my-images/715/buttonlayout.png/ すべてのボタンにはアイコンとテキストもあります (必要に応じてプログラムで変更できるように、これはテキストビューでなければなりません)

4

1 に答える 1

1

You have to create a custom layout that places the image specifically where you want them relative to the size of the parent view. If you choose, you can override the LayoutParams and apply custom attributes to them for your custom view to read.

Anyway, to specifically place an item, say 30% down from the top and 20% from the left, you would overwrite onLayout().

@Override
public void onLayout(boolean c, int left, int top, int right, int bottom) {
    super.onLayout(c, left, top, right, bottom);

    int width = right - left;
    int height = bottom - top;

    View v = getTheChildView();
    int viewL = left + (int)(width * .2f); // The left pixel is 20% down the total width of the parent view
    int viewR = viewL + v.getWidth(); // The right pixel is the left pixel plus the measured width of the child view itself
    int viewT = top + (int)(height * .3f); // The top pixel is 30% down the total height of the parent view
    int viewB = top + v.getHeight(); // The bottom pixel is the top pixel plus the measured height of the child view itself   
    v.layout(viewL, viewT, viewR, viewB);
}
于 2012-06-26T14:36:31.980 に答える