【发布时间】:2012-08-28 17:23:27
【问题描述】:
我有一个类似 test.png 的图片。
我需要从网络上购买该图像,并且在另一个位置我需要从可绘制对象中选择相同的图像。
问题是我在 web 和 drawable 中有相同的 png。当我在可绘制对象中显示我的图像时,它以正确的尺寸显示,但是当我从网络上获取它时,它看起来更小。 为了清楚起见,这只是我的问题的一个例子......我实际上并没有使用相同的图像,它们是不同的图像但具有相同的大小。为了验证,我在 web 和 drawable 上上传了相同的图像,发现相同的图像以不同的大小出现。 我需要做什么才能使两者都显示为可绘制模式?
我已经验证了这一点:
当我得到我保存在 SD 卡中的图像时:
File sdCard = Environment.getExternalStorageDirectory();
Fle directory = new File(sdCard.getAbsolutePath());
File file = new File(directory, "teste.png");
File InputStream streamIn;
Bitmap bitmap = Bitmapfactory.decodeStream(streamin);
ImageView image = new ImageView(c);
image.setImageBitmap(bitmap);
图像看起来比这样大:
Drawable img = Drawable.createFromPath(new File(Environment.getExternalStorageDirectory(), "teste.png").getAbsolutePath());
ImageView image = new ImageView(c);
image.setImageDrawable(img);
但在第一种模式下,它看起来比我使用 getResouces.getDrawable 直接从可绘制资源中获取图像时要小...
【问题讨论】:
-
您需要提供更多上下文才能获得有关此问题的帮助。你试过什么?您实际上是如何显示每个版本的(代码有帮助!)?当您“上传”图像时,您在使用什么? (这可能会影响图像本身。)
-
即使您使用相同的图像,它们在转换为可绘制对象时也会具有不同的大小,因为它们是使用 Context.getResources() 以及其他参数(例如 scaleType 等)创建的。Esp 显示时在 webview 上,您可能会受到视点调整等的影响。话虽如此,只需保存图像并以相同的方式将其取回即可,因为它们将显示基本相同的文件。
-
我不完全理解这个问题。当您显示来自资源的图像时,它看起来不错,但下载时看起来更小?
-
我使用 getResources().getDrawable(R.drawable.teste); 获得的可绘制文件夹中的图像来自网络的图像,我得到 URL url = new URL(path) 然后我得到 url.openStream() 来获取图像。我使用 FileOutputStream 将它存储到 Envionment.getExternalStorageDirectory() 中。代码在另一台没有互联网的机器上,所以我不知道如何复制所有代码。对不起。
-
布雷斯,是的。从drawable它很好,当我下载它时,将它保存在sd卡上,然后尝试显示图像,它变小了。在这两种方式中,我都使用 ImageView 来显示。但是从drawable中我得到了getResources()......爱迪生,有没有办法让它们以同样的方式出现?