Java 将字符串转换为位图,并将其存储到SD卡
我想通过首先转换返回的包含base64的JSONObject,然后将其转换为位图,将图像存储到SD卡。我尝试了下面的代码,但似乎没有任何效果 返回JSON对象的Php代码:Java 将字符串转换为位图,并将其存储到SD卡,java,php,android,json,Java,Php,Android,Json,我想通过首先转换返回的包含base64的JSONObject,然后将其转换为位图,将图像存储到SD卡。我尝试了下面的代码,但似乎没有任何效果 返回JSON对象的Php代码: $img = $row["imageName"]; $b64img = mysql_real_escape_string($b64img); $b64img = base64_encode ($img); $product["imageName"] =
$img = $row["imageName"];
$b64img = mysql_real_escape_string($b64img);
$b64img = base64_encode ($img);
$product["imageName"] = $b64img;
检索返回的JSON的Java代码:
for (int i = 0; i < products.length(); i++) {
JSONObject c = products.getJSONObject(i);
byte[] decodedString = Base64.decode(c.getString(TAG_IMAGE_NAME), Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
String fileN = (i+1)+".jpg";
OutputStream fOut = null;
File file = new File(Environment.getExternalStorageDirectory() + "/FinalTestforDatabase/",fileN);
try {
fOut = new FileOutputStream(file);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
decodedByte.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
try {
fOut.flush();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
try {
fOut.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
MediaStore.Images.Media.insertImage(getContentResolver(),file.getAbsolutePath(),file.getName(),file.getName());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for(int i=0;i
我必须确保先创建主文件夹以包含图像,然后再使用下面的代码。接下来,我需要创建一个包含图像的新文件夹,以便“/FolderName/FolderName2/”
OutputStream fOut = null;
File file = new File(
Environment.getExternalStorageDirectory()
+ "/FolderName/FolderName2/",
fileN);
try {
fOut = new FileOutputStream(file);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
decodedByte.compress(
Bitmap.CompressFormat.JPEG, 85, fOut);
try {
fOut.flush();
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
try {
fOut.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
MediaStore.Images.Media.insertImage(
getContentResolver(),
file.getAbsolutePath(),
file.getName(), file.getName());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在设备端,您是否成功获取JSON数据?您是否尝试将位图打印到imageview以进行测试?是的,我打印了decodedString和c.getString(TAG_IMAGE_NAME),但在将位图显示到imgView.setImageBitmap(decodedByte)时出错。上面的代码有什么问题吗?您遇到了什么错误?是的,请告诉我们您遇到了什么错误?请在此处打印stacktrace:)