我正在安卓系统上制作一个能够将一些照片上传到服务器的应用程序。我的问题是当我想从列表中完全删除图像时。我可以从图像视图中删除视图,但当我上传图像时。我得到了两张照片,一张是前一张照片,另一张是我在删除后设置的最后一张照片。(注:图片来源于图库)。以下是我的代码
设置照片到图像视图的代码
if(image.getDrawable() == null)
{
image.setImageBitmap(imageUpload);
imageUpload.compress(Bitmap.CompressFormat.JPEG, 100, baos);
image_data = baos.toByteArray();
encoded_image_1 = Base64.encodeBytes(image_data);
}
else if(image2.getDrawable() == null)
{
image2.setImageBitmap(imageUpload);
imageUpload.compress(Bitmap.CompressFormat.JPEG, 100, baos);
image_data = baos.toByteArray();
encoded_image_2 = Base64.encodeBytes(image_data);
}
else if(image3.getDrawable() == null)
{
image3.setImageBitmap(imageUpload);
imageUpload.compress(Bitmap.CompressFormat.JPEG, 100, baos);
image_data = baos.toByteArray();
encoded_image_3 = Base64.encodeBytes(image_data);
}
删除图像的代码
else if(image3.getDrawable() != null)
{
image3.setImageBitmap(null);
encoded_image_3 = null;
}
else if(image2.getDrawable() != null)
{
image2.setImageBitmap(null);
encoded_image_2 = null;
}
else if(image.getDrawable() != null)
{
image.setImageBitmap(null);
encoded_image_1 = null;
}
上传图像的代码
params_p.add(new BasicNameValuePair("image_1", encoded_image_1));
params_p.add(new BasicNameValuePair("image_2", encoded_image_2));
params_p.add(new BasicNameValuePair("image_3", encoded_image_3));
我感谢大家的帮助,谢谢。
在将每个encoded_image_*
添加到参数束之前,您应该检查它是否为null。如果应该为null的不是null,则逐步调试删除过程并查找,为什么程序不进入encoded_image_* = null
部分。
您可以尝试imageUpload.recycle()