2016-04-03 2 views
0

В моем проекте я использовал (Volley + NetworkImageView), чтобы загрузить несколько изображений и текстов и показать их в виде списка .. до сих пор у меня нет никаких проблем.Как получить растровое изображение из NetworkImageView?

Теперь я хочу получить растровые изображения формы NetworkImageView, и я пробовал много методов, как показано ниже, но не для них работали для меня.

BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); 
Bitmap bitmap = drawable.getBitmap(); 

Другой метод:

imageView.buildDrawingCache(); 
Bitmap bmap = imageView.getDrawingCache(); 

Non из них работал ..

Любая помощь приветствуется ,,

ответ

1

Вы не можете получить ссылку Bitmap как она не сохраняется в ImageView. однако вы можете получить его с помощью:

((BitmapDrawable)this.getDrawable()).getBitmap(); 

beacuse, когда вы установите его с Volley у делать это:

/** 
* Sets a Bitmap as the content of this ImageView. 
* 
* @param bm The bitmap to set 
*/ 
@android.view.RemotableViewMethod 
public void setImageBitmap(Bitmap bm) { 
    // Hacky fix to force setImageDrawable to do a full setImageDrawable 
    // instead of doing an object reference comparison 
    mDrawable = null; 
    if (mRecycleableBitmapDrawable == null) { 
     mRecycleableBitmapDrawable = new ImageViewBitmapDrawable(
       mContext.getResources(), bm); 
    } else { 
     mRecycleableBitmapDrawable.setBitmap(bm); 
    } 
    setImageDrawable(mRecycleableBitmapDrawable); 
} 

однако если установить изображение по умолчанию или изображение ошибки или любое другое изображение в любой другой вы не можете получить BitmapDrawable, но, например, NinePatchDrawable.

вот как проверить:

Drawable dd = image.getDrawable(); 
    if(BitmapDrawable.class.isAssignableFrom(dd.getClass())) { 
     //good one 
     Bitmap bb = ((BitmapDrawable)dd).getBitmap(); 
    } else { 
     //cannot get that one 
    } 
+0

спасибо за ваш ответ, так что вы имеете в виду я могу использовать что-то вроде этого:. Bitmap btmap = ((BitmapDrawable) this.getDrawable()) getBitmap(); –

+0

Правильно ли это? –

+0

да я использовал его сам, но лучше проверить тип также othrwise и может получить исключение casttype – djodjo

Смежные вопросы