如何在Android上的Glide中压缩图像

时间:2017-06-07 14:56:26

标签: android android-image android-glide

我希望在我的应用程序中显示图像,并且为了显示图像,我使用Glide库。
在我的代码中,我可以更改图像大小,但我想要压缩图像。

Glide.with(context)
        .load(model.get(position).getImageUrl2())
        .placeholder(R.drawable.default_image)
        .override(900, 600)
        .diskCacheStrategy(DiskCacheStrategy.ALL)
        .listener(new RequestListener<String, GlideDrawable>() {
            @Override
            public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                return false;
            }

            @Override
            public boolean onResourceReady(GlideDrawable resource, String model,
                                           Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                return false;
            }
        })
        .into(holder.newsImage);

如何压缩图像?

请帮帮我

1 个答案:

答案 0 :(得分:0)

获取图片

Drawable drawable = getDrawable(R.drawable.bird);

从可绘制对象中获取位图

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

初始化一个新的ByteArrayStream

ByteArrayOutputStream stream = new ByteArrayOutputStream();

将位图压缩为JPEG格式,质量为50%

bitmap.compress(Bitmap.CompressFormat.JPEG,50,stream);
byte[] byteArray = stream.toByteArray();
Bitmap compressedBitmap = BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);

使用压缩的位图加载图像。 我知道这不是您想要的,但我认为它可能会对您有所帮助。