android 图片 适配器
时间: 2023-06-30 14:04:42 浏览: 128
在 Android 中,图片适配器通常用于在列表视图、网格视图或翻页视图等容器中显示图片。适配器负责将图片数据绑定到每个视图中,以便正确显示图片。
以下是一个简单的图片适配器示例:
```java
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private int[] mImageIds;
public ImageAdapter(Context context, int[] imageIds) {
mContext = context;
mImageIds = imageIds;
}
public int getCount() {
return mImageIds.length;
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// 如果没有可重用的视图,则创建一个新的ImageView
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
// 如果有可重用的视图,则使用它
imageView = (ImageView) convertView;
}
// 加载图片
imageView.setImageResource(mImageIds[position]);
return imageView;
}
}
```
在上面的示例中,`ImageAdapter` 继承自 `BaseAdapter` 类,该类是 Android 中适配器的基类。在构造函数中,传入了一个 `Context` 对象和一个图片 ID 数组,用于初始化适配器。`getCount` 方法返回图片 ID 数组的长度,`getItem` 和 `getItemId` 方法不需要实现,因为它们不会被使用。`getView` 方法是适配器最重要的方法,用于创建或重用视图,并将图片数据绑定到视图中。在该方法中,首先检查是否存在可重用的视图,如果没有,则创建一个新的 `ImageView` 对象,并设置其布局参数和缩放类型。然后,加载并显示适当位置的图片。
请注意,上面的代码中,图片的大小是硬编码的。为了实现更好的图片适配,应该使用 Android 提供的不同尺寸的资源文件夹来存储不同分辨率的图片,例如:
```
res/drawable-mdpi/my_image.png
res/drawable-hdpi/my_image.png
res/drawable-xhdpi/my_image.png
res/drawable-xxhdpi/my_image.png
```
在加载图片时,适配器将自动根据设备的屏幕密度选择正确的图片。
阅读全文