に画像やステッカー(WEBP形式)のリストをステッカーを示す上で起こりました。 ImageViewの上にステッカーを表示するはrecycleviewに示されなければならない
、この[リポジトリ](https://github.com/EverythingMe/webp-android)が使用されます。このリポジトリは、バイト配列は、ビットマップに変換し、リポジトリのライブラリを使用して、バイト配列に変換し、(WebP for Android)
ステッカーファイルが外部ストレージからreadedされるこのポストの提案 解決策の一つであったし、最終的にビットマップが上に示されていますimageView。コードの下に「NATIVE_WEB_P_SUPPORTが」、「decodeWebP」メソッド「がメモリのうち」、この方法で作業時間のほとんどで罰金、時にはと呼ばれるエラーは、この上で起こっている偽のときステッカーファイルが
private void ShowStickerOnImageView(String stickerPath){
File file = new File(stickerPath);
int size = (int) file.length();
byte[] bytes = new byte[size];
BufferedInputStream buf = new BufferedInputStream(new FileInputStream(file));
buf.read(bytes, 0, bytes.length);
buf.close();
Bitmap bitmap = null;
boolean NATIVE_WEB_P_SUPPORT = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2;
if (!NATIVE_WEB_P_SUPPORT) {
bitmap = WebPDecoder.getInstance().decodeWebP(bytes);
} else {
bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
holder.imageView.setImageBitmap(bitmap);
}
.....
public Bitmap decodeWebP(byte[] encoded, int w, int h) {
int[] width = new int[]{w};
int[] height = new int[]{h};
byte[] decoded = decodeRGBAnative(encoded, encoded.length, width, height);
if (decoded.length == 0) return null;
int[] pixels = new int[decoded.length/4];
ByteBuffer.wrap(decoded).asIntBuffer().get(pixels);
return Bitmap.createBitmap(pixels, width[0], height[0], Bitmap.Config.ARGB_8888);
}
ビットマップに変換します方法。時間のほとんどは、このエラーは、これらの線
int[] pixels = new int[decoded.length/4];
ByteBuffer.wrap(decoded).asIntBuffer().get(pixels);
return Bitmap.createBitmap(pixels, width[0], height[0], Bitmap.Config.ARGB_8888);
に起こっている私は、プログラムステッカーファイルサイズを小さくすることができますステッカーファイルのバイト配列の長さは、大きい見つかりましたか?私はバイト配列のサイズを減らすために、解決策を探したい。
答えのステッカー –
等に使用されるテキストは、あなたが持っている主な問題は、お使いのディスプレイよりも大きい 'Bitmap'を作成している場合は特にRGB_565原因の画像低品質を使用。どちらかは、その大きさに応じて 'Bitmap'をロードし、その後、スケールされたバージョンをロードしたり、' View'のサイズを取得し、元のビットマップまたはファイルを変更し、それをロードいけません。使用する "Android 4.0以前の"デフォルトライブラリはありません。そして、そこにその理由は、大規模 'Bitmap'を表示する必要がある場合は、低リソースデバイスには、Googleのヘルプを探して、ですが、' Magically.load(largeBitmap) '関数を期待してはいけません – Bonatti