这是制作ImageView方块的好方法吗?

时间:2014-06-10 11:10:57

标签: java android imageview android-imageview android-view

父布局具有指定的宽度值(50dp),高度设置为MATCH_PARENT。在该布局中,我使用Java添加了一些ImageView小部件,并且由于父布局指定了宽度,我可以设置宽度高度ImageView到MATCH_PARENT的强>使用Java我可以通过将高度设置为宽度来使ImageView成为正方形。< / p>

这是我的代码:

public class Icon extends ImageView {

    public AppIcon(final Context context)
    {
        super(context);
    }

    public AppIcon(final Context context, final AttributeSet attrs)
    {
        super(context, attrs);
    }

    public AppIcon(final Context context, final AttributeSet attrs, final int defStyle)
    {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(final int width, final int height)
    {
        setMeasuredDimension(width, width);
    }

}

这是制作每个ImageView方的好方法吗?我觉得它太简单了,就像缺少一些东西一样。

P.S。:我的方法有效,但我需要确定,一切都很好。

1 个答案:

答案 0 :(得分:0)

您的代码正在运行,但可以增强。看我的代码: 更新了我的代码。

图像将根据测量的宽度和高度以及较小者中的任何一个进行缩放。

public class Icon extends ImageView {

public Icon(final Context context) {
    super(context);
}

public Icon(final Context context, final AttributeSet attrs) {
    super(context, attrs);
}

public Icon(final Context context, final AttributeSet attrs,
        final int defStyle) {
    super(context, attrs, defStyle);
}

@Override
protected void onMeasure(int width, int height) {
    super.onMeasure(width, height);
    int measuredWidth = getMeasuredWidth();
    int measuredHeight = getMeasuredHeight();
    if (measuredWidth > measuredHeight) {
        setMeasuredDimension(measuredHeight, measuredHeight);
    } else {
        setMeasuredDimension(measuredWidth, measuredWidth);

    }

}

}