2

Universal Image Loader Libraryを使用してビットマップ リソースを取得しようとしています。次のように onLoadComplete() メソッドをオーバーライドしました。

loader.displayImage(thumbnail.get(position), hold.ivThumbnailReflection, options, new ImageLoadingListener() {

        @Override
        public void onLoadingStarted(String arg0, View arg1) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onLoadingComplete(String urlLink, View arg1, Bitmap loadedImage) {

            Log.i("loading complete","loading complete "+loadedImage);
            hold.ivThumbnail.setImageBitmap(loadedImage);


        }

        @Override
        public void onLoadingCancelled(String arg0, View arg1) {
            // TODO Auto-generated method stub

        }
    });

画像はビューに設定されていますが、ivThumbnailReflectionビューに画像がありませんivThumbnail。loadedImage のオブジェクトを印刷すると、android.graphics.Bitmap@4170f1d0 という形式の文字列が得られます。

私は何を間違っていますか?助けてください。

編集: UILのオプションを初期化:

options = new DisplayImageOptions.Builder()
.cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.build();
4

5 に答える 5

10

complete を使用する代わりに、これだけを使用してみませんか :

imageLoader.displayImage(imageUri, imageView);

または、これを使用します

imageLoader.loadImage(imageUri, new SimpleImageLoadingListener() 
{
    @Override
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) 
    {
         // Do whatever you want with Bitmap
    }
});
于 2013-08-13T05:52:02.500 に答える
5

を使ってみてくださいloadImageSync(String uri)。ビットマップを提供します。

ビットマップから描画可能にしたい場合

Drawable d = new BitmapDrawable(getResources(),imageLoader.loadImageSync(url);
于 2014-02-25T22:57:59.807 に答える
1

このコードはあなたを助ける必要があります

public class CreateNotificationActivity extends AppCompatActivity {

    private NetworkImageView mNetworkImageView;
    private ImageLoader mImageLoader;
    Bitmap bit;

    String url = "http://www.whitegadget.com/attachments/pc-wallpapers/145032d1392006652-nature-wallpaper-nature-picture.jpg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_notification);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        mNetworkImageView = (NetworkImageView) findViewById(R.id.networkImageView1);

        //bit = BitmapFactory.decodeResource(getResources(), R.drawable.bgd);

        //Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bgd);

        mImageLoader = CustomVolleyRequestQueue.getInstance(this.getApplicationContext())
                .getImageLoader();

        Bitmap bitmap =mImageLoader.get(url, ImageLoader.getImageListener(mNetworkImageView,
                R.mipmap.ic_launcher, R.drawable.icon)).getBitmap();



        Button btn = (Button) findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                createNotification();
            }
        });


    }

    @Override
    protected void onStart() {
        super.onStart();

        mImageLoader = CustomVolleyRequestQueue.getInstance(this.getApplicationContext())
                .getImageLoader();

        bit =mImageLoader.get(url, ImageLoader.getImageListener(mNetworkImageView,
                R.mipmap.ic_launcher, R.drawable.icon)).getBitmap();


    }

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    public void createNotification()
    {



        bit = BitmapFactory.decodeResource(getResources(), R.drawable.bgd);

        mImageLoader.get(url, new ImageLoader.ImageListener() {
            @Override
            public void onResponse(ImageLoader.ImageContainer imageContainer, boolean b) {
                bit =mImageLoader.get(url, ImageLoader.getImageListener(mNetworkImageView,
                        R.mipmap.ic_launcher, android.R.drawable
                                .ic_dialog_alert)).getBitmap();

                Intent intent = new Intent(getApplicationContext(),NotificationReceiverActivity.class);
                PendingIntent pIntent = PendingIntent.getActivity(getApplicationContext(), (int) System.currentTimeMillis(), intent, 0);


                Notification noti = new Notification.Builder(getApplicationContext())
                        .setContentTitle("Mail Notification")
                        .setContentText("5 new unread messages")
                        .setSmallIcon(R.drawable.bgd)
                        .setStyle(new Notification.BigPictureStyle().bigPicture(bit))
                        .setAutoCancel(true)
                        .setContentIntent(pIntent).build();


                NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

                noti.flags |= Notification.FLAG_AUTO_CANCEL;

                notificationManager.notify(0,noti);

                Log.i("LOG>>>>>>>>>>>>>>>>>>>","inside the on response");
            }

            @Override
            public void onErrorResponse(VolleyError volleyError) {
                bit = BitmapFactory.decodeResource(getResources(), R.drawable.bgd);
                Log.i("LOG>>>>>>>>>>>>>>>>>>>","inside the errror response");


            }
        });

//        bit =mImageLoader.get(url, ImageLoader.getImageListener(mNetworkImageView,
//                R.mipmap.ic_launcher, android.R.drawable
//                        .ic_dialog_alert)).getBitmap();

    }

}
于 2016-01-20T04:24:51.607 に答える