0

DB に blob として保存された画像を表示しようとしています。ORMLite と Android 1.6 を使用しています。「html.FromHtml」を表示するtextViewを作成しました

コードは次のとおりです。

//Save the image in DB.
    ...
    Bitmap myBitmap = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().toString()+"/images/imagem.png");
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    myBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] byteArray = stream.toByteArray();
    glossary.setImageBytes(byteArray);

「用語集」は用語集のインスタンスです。「imageBytes」フィールドを持っているのは誰ですか:

@DatabaseField(dataType = DataType.BYTE_ARRAY)  
private byte[] imageBytes;  

私のアクティビティでは、この「imageBytes」を文字列に渡して「html.FromHtml」を使用します。

//Activity
...
String htmlContent = "<h1> Title </h1> 
                      <img src=\""+glossary.getImageBytes.toString()+"\" />"

今、アダプタで「htmlContent」のコンテンツを表示しようとしています:

//Adapter
...
holder.tvContent.setText(Html.fromHtml(htmlContent, new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String source) {  
                    byte[] data;
                    data = source.getBytes();
                    Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
                    //Log.i("bitmap", "bitmap height:" + String.valueOf(bitmap.getHeight) );
                    //THIS LOG RETURN NPE
                    Drawable d = null;  
                    d = new BitmapDrawable(getResources(),bitmap);
                    d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
                    return d;   
                }
            }, null));
...

問題は、バイトを文字列に、文字列をバイトに変更するときだと思います。「BitmapFactory.decodeFile()」によって作成されたビットマップが NPE を返しているためです。

しかし、それを修正する方法がわかりません。

助言がありますか?どうも!

4

1 に答える 1

0

確かにあなたの最初の問題は、あなたがすべきではないということです:

glossary.getImageBytes().toString()

abyte[]を a にするには、次のStringことを行う必要があります。

new String(glossary.getImageBytes())

a を実行するbyte[].toString()と、次のように設定されます。

[B@3487a5cc

String配列内のバイトで構成される代わりに。

とは言っても、PNGファイルからのバイトをbyte[]配列に入れて、 として出力できるかどうかはわかりませんString。HTML にバイナリ情報を出力しようとしているように思えますが、正しく変換されるとは思えません。PNGまた、バイトをsrc="..."HTML セクションに入れているようです。私の知る限り、それは機能しません。

于 2012-05-23T18:02:36.987 に答える