1

API 1 以降でサポートされている非常に単純なコードを使用しようとしています。

if (bitmap != null) {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.WEBP, IMAGE_QUALITY, byteArrayOutputStream);
    byte[] bytes = byteArrayOutputStream.toByteArray();
    result = Base64.encodeToString(bytes, Base64.DEFAULT);
}

何とかして、

bitmap.compress(Bitmap.CompressFormat.WEBP, IMAGE_QUALITY, byteArrayOutputStream);

その奇妙なエラーが表示されます:java.lang.NoSuchFieldError: android.graphics.Bitmap$CompressFormat.WEBPこれは私のmoto razr 2.3でのみ発生します

私はこれについてインターネット上で何も見つけることができません。どうしたの?(明らかに、モトローラの在庫のアンドロイドはそれを含めることを考えていませんでしたが、どうすればこれを修正できますか?)何かヒントはありますか?

私がしたいのは、画面(またはビュー)のスナップショットを圧縮して取り、それをユーザーフレンドリーな方法でStringフォームに添付することだけです(この同じデバイスもファイルの添付を正しく行いません)電子メールの意図の本文に、メールを送信できる人にそれを渡します。

.jpeg に圧縮しようとしてから、それを base64 でエンコードされた文字列に変換してから、メールの本文に添付すると、非常に時間がかかり、ユーザーの反応がよくありません。これは起こり得ません。

助けはありますか?

4

1 に答える 1

3

android.graphics.Bitmap$CompressFormat.WEBP は、API レベル 14 以上でのみ機能します。

いくつかの WebP ライブラリを試してください。
JavaのWebPライブラリ?

于 2013-10-11T01:32:43.610 に答える