父布局具有指定的宽度值(50dp),高度设置为 这是我的代码: 这是制作每个 P.S。:我的方法有效,但我需要确定,一切都很好。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
方的好方法吗?我觉得它太简单了,就像缺少一些东西一样。
答案 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);
}
}
}