我正在开发一款连接到Facebook并在设备内部存储空间保存用户个人资料图片的Android应用。
这是我的代码:
private void getFacebookUserProfilePicture(String userAccessToken)
{
String url = Constants.FB_PROFILE_IMAGE_URL + userAccessToken;
AsyncHttpClient client = new AsyncHttpClient();
client.get(url, new AsyncHttpResponseHandler()
{
@Override
public void onSuccess(String response)
{
saveUserProfileImage(response.getBytes());
}
});
}
private void saveUserProfileImage(byte[] imageBytes)
{
Log.v(TAG, "Save user image");
FileOutputStream fOut = null;
try
{
fOut = openFileOutput(Constants.FB_PROFILE_IMAGE_FILE_NAME, Context.MODE_PRIVATE);
fOut.write(imageBytes);
fOut.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
我正在使用Android模拟器进行测试,我使用Eclipse DDMS将文件保存到我的电脑上,但我无法打开它。
我做错了什么?我用jpg扩展程序保存了。
或许,问题可能是:如何将byte[]
保存为JPG图像?
如果我在浏览器上测试url
,我会得到一张 2,47KB 的图片。我从设备复制的图像 4,26KB 。
答案 0 :(得分:0)
您可以按照link进行操作。之后,您可以检查它是否正在从设备加载图像。
答案 1 :(得分:0)
您可以将字符串转换为字节数组,然后将此数组写入您的文件名。 你这个方法写数组:
public void WriteByteToFile(byte[] mybytes, String filename){
try {
FileOutputStream FOS = openFileOutput(filename, MODE_PRIVATE);
FOS.write(mybytes);
FOS.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
将字符串转换为字节数组,如下所示:
byte[] bytes = string.getBytes("UTF-8");
试试吧这可以解决你的问题..