【发布时间】:2013-12-27 11:33:38
【问题描述】:
好的,所以我正处于偏头痛点,感觉无论我尝试做什么,我都在违背常规。
如何获得图像视图的网格视图(使用下面的数组适配器从位图中覆盖)以在动态数量的列和行中并排显示,它们之间没有间距?
public class GameAdapter extends BaseAdapter {
//Variable setup
private Context context;
private Bitmap[] values;
//Construct the image parameter, get context, the array of images, and the height/width of them
public GameAdapter(Context context, Bitmap[] _values) {
this.context = context;
this.values = _values;
}
//Convert Dp to pixels for modularity
private int dpToPx(int dp)
{
float density = context.getResources().getDisplayMetrics().density;
return Math.round((float)dp * density);
}
@Override
public int getCount() {
return values.length;
}
@Override
public Object getItem(int i) {
return values[i];
}
@Override
public long getItemId(int i) {
return values[i].getGenerationId();
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ImageView imageView = new ImageView(context);
imageView.setImageBitmap(values[i]);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// int pad = dpToPx(1);
// imageView.setPadding(pad,pad,pad,pad);
// Log.w("Derp", "" + "Height- "+values[i].getHeight());
// Log.w("Derp", "" + "Width- "+values[i].getWidth());
imageView.setLayoutParams(new GridView.LayoutParams(values[i].getWidth(), values[i].getHeight()));
return imageView;
}
}
【问题讨论】:
-
您是否要求将每行和每列的垂直和水平间距设置为空?还是多个不同宽度的 ImageView 的宽度问题?
-
它们的宽度/高度相同,但直到运行时我才知道它是什么,所以最初需要将它们设置为 null 或任何其他要被覆盖的值。
标签: android gridview imageview baseadapter