android - 图像裁剪以适合 GridView

标签 android image gridview crop


我需要在 GridView 中显示三列 ImageView 并且我想对图像进行方形处理以避免这种效果 https://www.dropbox.com/s/hjc55ijbf8cdkao/SC20130430-194230.png

这是我的 xml 代码:

<?xml version="1.0" encoding="utf-8"?>

<GridView 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/grid_view"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:numColumns="3"
  android:columnWidth="90dp"
  android:horizontalSpacing="10dp"
  android:verticalSpacing="10dp"
  android:gravity="center"
  android:stretchMode="columnWidth" >  

</GridView>

和适配器:

public class PhotoListAdapter extends ArrayAdapter<Photo> {

Context context;

// Constructor
public PhotoListAdapter(Context context, ArrayList<Photo> mPhotoList) {
    super(context, R.layout.item_album_detail, mPhotoList);
    this.context = context;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    // Inflating
    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView = inflater.inflate(R.layout.item_album_detail, parent, false);

    // Linking view by id
    ImageView pic = (ImageView) convertView.findViewById(R.id.current_img);

    // Get current item
    Photo item = getItem(position);

    // Set widget
    pic.setScaleType(ImageView.ScaleType.CENTER_CROP);
    ImageDownloader imgd = new ImageDownloader(pic);
    imgd.execute(item.getPhoto_m());

    return convertView;
}

}

在 item_album_detail.xml 中只有一个 ImageView

<ImageView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:contentDescription="@string/desc"
  android:id="@+id/current_img"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:adjustViewBounds="true" />

我希望得到这个https://www.dropbox.com/s/i5gimy1lcwyavui/SC20130430-195710.png

最佳答案

更改比例类型将解决您的问题。但图像可能看起来有些拉伸(stretch)。

pic.setScaleType(ImageView.ScaleType.FIT_XY);

关于android - 图像裁剪以适合 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16306365/

相关文章:

c# - 系统.InvalidOperationException : ExecuteReader: CommandText property has not been initialized Error is coming

android - 由于内部错误,Xamarin Android 部署失败

android - rs和android之间的数据传输?

java - 如何从 FirestorePagingAdapter 中的 onLoadingStateChanged 方法隐藏/显示进度条?

java - src.type() == CV_8UC1 断言在校正图像时失败

css - Pagespeed 警告 - 在图像元素上使用明确的宽度和高度

c# - 使用javascript查找放置在gridview中的复选框和文本框

android - 奇怪的选项菜单 - 导航栏中的按钮(Android 4.0)

ios - 如果 url 显示加载错误,如何再次重新加载图像 url

android - Android 4.3 及更低版本中 getChildFragmentManager 的奇怪行为