关于自定义视图保证金

时间:2012-05-30 12:52:55

标签: android view margin

MyView扩展了View,并在onDraw()中绘制了一个圆圈。但是如果我将边距设置为其父布局,它通常会被剪裁:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="0dp"
    android:layout_marginTop="10dp"
    ... >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="RAM" />

        <my.ui.ClockView2
            android:padding="5dp"
            android:id="@+id/ram_cv"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_weight="1"
            android:visibility="visible" />

我试图计算边距,但只得到了填充:

    _availableWidth = getWidth() - getPaddingLeft() - getPaddingRight();
    _availableHeight = getHeight() - getPaddingTop() - getPaddingBottom();

有没有办法避免这种情况,提前谢谢!

1 个答案:

答案 0 :(得分:1)

看起来你在视图中这样做了,所以试试这个:

        MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
        int[] mymargin = {
                lp.leftMargin,
                lp.rightMargin,
                lp.topMargin,
                lp.bottomMargin,
        };