我有一个 GridView,其中有一组 ImageView。我在 GetView 中创建图像如下:
public override View GetView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;
if (convertView == null)
{ // if it's not recycled, initialize some attributes
imageView = new ImageView(context);
imageView.LayoutParameters = new GridView.LayoutParams(118, 132); // images are all the same dimension
imageView.SetScaleType(ImageView.ScaleType.FitXy);
imageView.SetPadding(5, 5, 5, 0);
}
else
{
imageView = (ImageView)convertView;
}
imageView.SetImageResource(thumbIds[position]);
return imageView;
}
// references to our images
int[] thumbIds =
{
Resource.Drawable.IconAdvocacy, Resource.Drawable.IconBusinessServices,
Resource.Drawable.IconContactUs, Resource.Drawable.IconDistrict,
Resource.Drawable.IconEvents, Resource.Drawable.IconFind,
Resource.Drawable.IconLawsRegs, Resource.Drawable.IconHealth,
Resource.Drawable.IconPracMgmt, Resource.Drawable.IconPublications,
Resource.Drawable.IconUpdates, Resource.Drawable.IconUploadPhoto
};
如您所见,我在 LayoutParams 函数中定义了固定大小。这会导致每个设备上的图像大小相同。
问题:缩放图像的最佳方法是什么?
我应该: 1) 只需在每个可绘制、-hdpi、-ldpi 和 -mdpi 文件夹中创建不同大小的图像吗?如果是这样,我如何指定 LayoutParams 的大小?
2) 获取 DisplayMetrics?如果是这样,我该怎么做?我一直无法获得有关如何执行此操作的 MonoDroid 信息。文档中的示例似乎不起作用。
任何帮助是极大的赞赏!!
谢谢