我正在使用 android 并尝试从 ImageView 上的网站下载和显示 favicon(.ICO)。
到目前为止,我已经设法使用 HTTP 连接从网站读取 .ico,并将其作为 InputStream 检索。然后我使用 BitmapFactory 将流解码为 Bitmap 并将其显示在 ImageView 上。这是代码:
public Bitmap getBitmapFromURL(URL src) {
try {
URL url = new URL("http", "www.google.com", "/favicon.ico");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap myBitmap = BitmapFactory.decodeStream(input, null, options);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
问题是 inputStream 的解码总是返回一个小的 16x16 Bitmap。如果我很好理解的话,一个 .ICO 文件可以存储不同的图像分辨率,例如 32x32 和 64x64。我的问题是,有没有办法解码 32x32 或 64x64 位图而不是 16x16?
另外,如果 BitmapFactory 没有解决方案,是否有库或 java 代码可以做到这一点?
注意:我不想调整位图的大小,我想要一个 32x32(或更大)的分辨率,而不会因拉伸而损失图像质量。
提前致谢。