如何在一个 ImageView 中保存我的网格完整 GridView 项目有人帮助我。在下面的代码中,这是我用于 GridView 的 ImageAdapter,这里是我的 GridView 项,我想在 ImageView 中的 sdcard 中保存“mthum”位图数组
public class ImageAdapter extends BaseAdapter {
private Context mContext;
Bitmap bit = Bitmap.createScaledBitmap(S.Murge_Bitmap, 280, 280, false);
public Bitmap[] mThum={bit,bit,bit,bit,bit,bit,bit,bit,bit,bit,bit,bit};
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return mThum.length;
}
public Object getItem(int position) {
return mThum[position];
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setPadding(1, 1, 1, 1);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageBitmap(mThum[position]);
return imageView;
}
最佳答案
你可以使用这个解决方案,但我认为它只会给你一个显示图像的位图:
Bitmap b = Bitmap.createBitmap(mGridView.getDrawingCache());
如果您对此有疑问并且无法获得位图,请尝试以下操作:
mGridView.setDrawingCacheEnabled(true);
// Without it the view will have a dimension of 0,0 and the bitmap will be null
mGridView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
mGridView.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
mGridView.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(mGridView.getDrawingCache());
mGridView.setDrawingCacheEnabled(false); // clear drawing cache
否则,如果您想要来自“适配器”的所有图像,您可以像这个答案中描述的那样构造您的位图:
https://stackoverflow.com/a/15152221/1686472
编辑:我没看到你想将图像保存在 SD 卡上,关于这个问题有很多答案,所以你应该看看它们:
关于android - 我想将我的 GridView 保存在一个 ImageView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21694366/