Android 使ImageView的高度与宽度相同?

Android 使ImageView的高度与宽度相同?,android,Android,有没有办法告诉ImageView的高度和宽度一样?比如: <ImageView layout_width="fill_parent" layout_height="whatever width ends up being" /> 谢谢我最近一直在尝试做类似的事情;据我所知,没有办法通过XML做到这一点。您可以做的一件事是最初将高度设置为0,然后在布局时,在代码中检查宽度并设置高度。大概是这样的: final ImageView imageView = (ImageV

有没有办法告诉ImageView的高度和宽度一样?比如:

<ImageView
  layout_width="fill_parent"
  layout_height="whatever width ends up being"
  />


谢谢

我最近一直在尝试做类似的事情;据我所知,没有办法通过XML做到这一点。您可以做的一件事是最初将高度设置为0,然后在布局时,在代码中检查宽度并设置高度。大概是这样的:

final ImageView imageView = (ImageView)findViewById(R.id.my_image_view);
ViewTreeObserver vto = imageView.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        int width = imageView.getWidth();
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, width);
        imageView.setLayoutParams(params);
    }
}

现在,还没有测试过这一点,如果布局的其余部分取决于此视图的大小,我不确定这段代码会产生什么影响,以及布局的其余部分是否会相应地进行调整。可能会让您开始。

使用“包裹内容”,包裹内容根据原始值显示,即图像的原始高度。这让我开始了,我还没有一个好的解决方案,很棘手。谢谢。是的,有点疼。这是我多次需要的东西,希望它最终能得到一个选项。我认为这行可能是错误的LayoutParams params=new LayoutParams(宽度,宽度),应该是LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(宽度,宽度)或其他ViewGroup@pengwang:我相信你是对的这是从我的头顶上键入的,我忘记指定LayoutParams类型。更新,谢谢!