如何使ImageView的高度等于图片的高度?Android

3

我有一个GridView,里面装满了图片。这是我的自定义适配器:

    public class ImageAdapter extends ArrayAdapter<String> {

    private final String LOG_TAG = ImageAdapter.class.getSimpleName();

    public ImageAdapter(Activity context, List<String> urls){
        super(context, 0, urls);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        String url = getItem(position);
        View rootView = LayoutInflater.from(getContext()).inflate(R.layout.grid_item, parent, false);

        ImageView img = (ImageView) rootView.findViewById(R.id.grid_view_item);
        img.setLayoutParams(
                new GridView.LayoutParams(
                        GridView.AUTO_FIT,
                        500));
        img.setScaleType(ImageView.ScaleType.FIT_XY);

        Picasso.with(getContext())
                .load(url)
                .into(img);

        return rootView;
    }
}


您可以看到我将高度设置为500。但我不想这样。
我希望高度与宽度一样,是图片的实际高度。
我该怎么做?


你应该直接获取图片,然后在 ImageView 中设置宽度。https://dev59.com/Pl8e5IYBdhLWcg3wpLsr - Victory
当我尝试将Picasso get放入Bitmap变量中时(Bitmap image = Picasso.with(getContext()).load(url).get();),我遇到了一个IOException。 - Cas
@krislarson 嗯,它使图像适合于ImageView,但不会改变ImageView的大小。基本上它会扭曲图像。;/ - Cas
你是否也在 ImageView 上将高度设置为 wrap_content - kris larson
@krislarson 噢,可以了!谢谢啊! - Cas
显示剩余2条评论
1个回答

1
使用adjustViewBounds属性强制高度正确。
<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接