web-dev-qa-db-ja.com

byte []からDrawableを作成する方法は? (アンドロイド)

バイトの配列があり、それをAndroid Drawableに変換する必要があります。この変換を実行するにはどうすればよいですか?

これが私が試したものですが成功しませんでした:

byte[] b = getByteArray();
ByteArrayInputStream is = new ByteArrayInputStream(b);
Drawable drw = Drawable.createFromStream(is, "articleImage");

drwは常にnullです!

編集:

私のbyte []は実際に破損しているか不完全でした、それが問題でした。

17
Paulo Barros

もしあなたの byte[] bにはimagedataが含まれているので、これを試すこともできます。

 Drawable image = new BitmapDrawable(BitmapFactory.decodeByteArray(b, 0, b.length));

[〜#〜]編集[〜#〜]

リソースのないBitmapDrawableコンストラクターは非推奨になりました。代わりにこれを使用してください。

Drawable image = new BitmapDrawable(getResources(),BitmapFactory.decodeByteArray(b, 0, b.length));

これを試して、何が起こるか教えてください、

34
user370305

本当にドローアブルが必要ですか?ビットマップが収まる場合は、次のようにします。

Bitmap bitmap = BitmapFactory.decodeStream(is);
1
Camille R