0

我编写了一个自定义可绘制对象并将其显示在 ImageView 中。

如果我向 ImageView 添加填充,我的可绘制对象会过度绘制填充并填充完整的图像视图。

我在我的drawable中做的是:

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

    Rect r = new Rect();

    getPadding(r);

    Log.d("Test", "padding " + r.toShortString());

    mWidth = right - left;
    mHeight = bottom - top;

}

在 Drawables 绘制方法中,我绘制了一个位图来填充 mWidth 和 mHeight。

那么我如何计算填充呢?获取填充(r);即使 ImageView 有一些填充,也总是返回 0,0,0,0 值。

知道如何解决吗?

4

1 回答 1

0

getPadding() 只能在 Imageview 加载后调用。添加一个 ViewTreeObserver 以在加载图像视图后获取填充。

于 2013-09-04T10:03:50.397 回答