0

ION ( https://github.com/koush/ion ) を使用して、Web からListViewofに画像を読み込みますImageView。現在、 からビットマップを取得したいのImageViewですが、アプリを強制終了する例外が 1 つあります。

java.lang.ClassCastException: com.koushikdutta.ion.IonDrawable cannot be cast to android.graphics.drawable.BitmapDrawable

これらは私が使用している行です:

final ImageView itemImageView = (ImageView)view.findViewById(R.id.photoImage);
final Bitmap itemDrawable = ((BitmapDrawable) itemImageView.getDrawable()).getBitmap();

どうすればこれを解決できますか? 前もって感謝します!

4

4 に答える 4

5

Ion は、アニメーション GIF、フェード トランジションなどを管理するカスタム ドローアブルを設定するため、BitmapDrawable にキャストすることはできません。

使用する:

Ion.with(imageView).getBitmap()

ビットマップを取り出す

于 2014-12-26T08:41:55.923 に答える
3

Ion リクエストを作成するときにコールバックを設定し、ImageViewBitmapInfo を返すようにすると、その方法でビットマップを取得できます。例えば

Ion.with(imageView)
   .placeholder(R.drawable.default_avatar)
   .load(userImageURL)
   .withBitmapInfo()
   .setCallback(new FutureCallback<ImageViewBitmapInfo>() {
       @Override
       public void onCompleted(Exception e, ImageViewBitmapInfo result) {
           // Check for exceptions

           // Check bitmaps first
           Bitmap b = result.getBitmapInfo().bitmaps[0];
           ...
       };
于 2014-10-27T21:18:15.307 に答える
1

調べる価値があるかもしれません:

nostra13 の「Universal Image Loader」

これは、URL から画像を表示したり、ビットマップにキャストしたりするための多数の機能を備えた素晴らしいライブラリです。

于 2014-07-02T16:08:02.967 に答える