私はアンドロイドに取り組んでおり、ImageView のウェブサイトからファビコン (.ICO) をダウンロードして表示しようとしています。
これまでのところ、HTTP 接続を使用して Web サイトから .ico を読み取り、それを InputStream として取得することができました。次に、BitmapFactory を使用してストリームをビットマップにデコードし、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 ビットマップを返すことです。私がよく理解していれば、1 つの .ICO ファイルに 32x32 や 64x64 などのさまざまな画像解像度を格納できます。私の質問は、16x16 の代わりに 32x32 または 64x64 ビットマップをデコードする方法はありますか?
また、BitmapFactory で解決策がない場合、これを行うためのライブラリまたは Java コードはありますか?
注:ビットマップのサイズを変更したくありません。引き延ばして画質を落とさずに 32x32 (またはそれ以上) の解像度が必要です。
前もって感謝します。