使ImageView和它一样高吗?

时间:2010-12-17 16:10:52

标签: android

有没有办法告诉ImageView像它一样宽?类似的东西:

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

由于

1 个答案:

答案 0 :(得分:2)

我最近一直试图做类似的事情;据我所知,没有办法通过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);
    }
}

现在,没有测试过这个,如果你的布局的其余部分依赖于这个视图的大小,我不确定这个代码会产生什么影响,以及布局的其余部分是否会相应地调整自己。可能会让你开始。