我从服务器下载图像并使用以下代码保存:
private void downloadImages(String[] images, String fileName){
for (int i = 0; i < images.length; i++) {
try {
url = new URL(images[i]);
String outputName = i+fileName;
input = url.openConnection().getInputStream();
output = activity.openFileOutput(outputName, Context.MODE_PRIVATE);
int read;
byte[] data = new byte[1024];
while ((read = input.read(data)) != -1){
output.write(data, 0, read);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (output != null)
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
if (input != null)
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
这很好用。
问题在于,当我阅读它们以在ImageButton
或MenuItem
上显示它们时,它们会自动调整大小。
当我从模拟器中取出图像时,我发现它们的尺寸是正确的。 我用于测试的每个设备上的行为相同。
我使用此代码阅读图像:
private Drawable[] readMenuImages(){
Drawable[] drawable = new Drawable[myJSONObject.getMenuItems().length];
for(int i=0 ; i < myJSONObject.getMenuItems().length ; i++){
try {
drawable[i]=Drawable.createFromStream(activity.openFileInput(i+activity.getString(R.string.menuItemImgarabicfilename)), "ImageStream");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return drawable;
}
我实际上无法理解发生了什么或如何解决这个问题。
我已经访问了这个帖子Downloaded image gets resized,但它没有帮助。
谢谢你的帮助。