Android ImageView设置Bitmap FitXY不起作用

idi*_*ish 4 android image scale imageview android-imageview

我一直在尝试设置位图很长时间以使其适合ImageView边界.

它只是无法正常工作scaleType: fitXY.我的位图图像大小低于ImageView's(保存在100X100像素),我希望我的位图图像适合并伸展到ImageView.

这是一些代码:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/imageView" 
   android:layout_height="match_parent"
   android:layout_width="match_parent"
   android:src="@drawable/locked_image"
   android:scaleType="fitXY"
/>
Run Code Online (Sandbox Code Playgroud)

这是设置的代码ImageView(我scaleType在不同的地方设置测试):

@Override
public View getView(int position, View convertView, ViewGroup parent) {
  final ImageView imageView;
  if (convertView == null) {
    imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
    imageView.setScaleType(ScaleType.FIT_XY);
  } else {
    imageView = (ImageView) convertView;
    imageView.setScaleType(ScaleType.FIT_XY);
  }

  imageLoader.displayImage(imagesIds[position], imageView, options);
  imageView.setScaleType(ScaleType.FIT_XY);
  return imageView;
}
Run Code Online (Sandbox Code Playgroud)

以下是它的外观:

在此输入图像描述

正如你所看到的,高度ImageView很好,但我想它的宽度是一样的.我无法通过我的活动访问我的位图图像,所以请不要让我调整我的位图大小.我真的不明白为什么它不能正常工作.


编辑:
只是为了使问题更容易理解.ImageView计算每个设备的高度.每个设备都不同.我希望我的宽度ImageView与它的高度相同.我正在使用该Two-WayGridView库来显示图像,如果它有任何区别.

Geo*_*its 9

scaleType正如您认为的那样,使用不会改变ImageView的大小.它所做的就是扩大位图到大小的ImageView的(它做得很好,你的截图来看).

如果你想制作方形ImageViews,你应该尝试看看这个问题.

另外,我不确定我理解你为什么使用TwoWayGridView库.它专门设计用于指定行/列的数量,并且它将拉伸项目以适应.这似乎与你想要的完全相反,因为你想让它们成为正方形.如果您覆盖onMeasure()链接的问题/答案中显示的每个项目,则可以使用普通的GridView .