2016-01-11 36 views
6

Tôi đang sử dụng Glide để tải xuống và hiển thị hình ảnh, tuy nhiên, khi tôi cố gắng đổi kích thước hình ảnh, nó không làm như vậy. Tôi nhận được kích thước ngẫu nhiên (hoặc có thể là kích thước thực của hình ảnh).Thay đổi kích thước hình ảnh lướt qua ghi đè không đổi kích thước hình ảnh

Dưới đây là đoạn code tôi sử dụng để tải qua Glide

Glide.with(context) 
    .load(file.getUrl()) 
    .asBitmap() 
    .diskCacheStrategy(DiskCacheStrategy.ALL) 
    .centerCrop() 
    .transform(new CropCircleTransform(context)) 
    .override(dimen, dimen) 
    .into(new SimpleTarget<Bitmap>() { 
     @Override 
     public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) { 
      bitmap = resource; 

      Log.info(resource.getWidth() + "x" + resource.getHeight()); 
     } 
     }); 

các CropCircleTransform chỉ làm cho cây trồng tròn bitmap và trung tâm. Tôi đã thử gỡ bỏ nó chỉ để kiểm tra nếu phương pháp này gây ra vấn đề nhưng vẫn còn hình ảnh không thay đổi kích thước để kích thước tôi chỉ định.

Bất kỳ điều gì sai với mã của tôi? hoặc Tôi có hiểu nhầm phương pháp ghi đè ở đây không?

EDIT:
Cố gắng để loại bỏ các ghi đè, và nó dường như đã nạp hình ảnh ở kích thước lớn nên nó có nghĩa là có thực sự là một thay đổi kích thước điều đó xảy ra khi sử dụng ghi đè.

Làm thế nào đến, nó không thay đổi kích thước theo giá trị thực tế mà tôi đã chỉ định?

EDIT:
Là một mẫu, giá trị cho dimen là 96, nhưng kích thước hiển thị trong nhật ký cho những hình ảnh giống như 97x97, 117x117, 154x154, vv

Điều đó có nghĩa là, các giá trị cho phương pháp ghi đè là đường cơ sở để thay đổi kích cỡ và không phải là thứ nguyên thực tế được sử dụng?

Trả lời

1

Tôi gặp lỗi này ngay bây giờ. Giải pháp của tôi là đặt số lần xem như thế này:

  1. đặt kích thước hình ảnh của bạn trong tệp xml.
  2. Glide.with(context).load(path).centerCrop().crossFade().into(imageview);

hoạt động.

+0

bạn cũng cần thay đổi kích thước các lần xem như thế này. – Leito

+0

cảm ơn nó đã hoạt động! – Woppi

0

Tôi vừa gặp tình huống tương tự.Và tôi nghĩ đây là lỗi của Glide. Vì vậy, bạn phải thay đổi kích thước bitmap một mình như thế này:

Glide.with(context).load(url).asBitmap().into(new SimpleTarget<Bitmap>{ 

    @Override 
    public void onResourceReady(Bitmap resource,GlideAnimation<? extends Bitmap>(){ 
      // resize the bitmap 
      bitmap = resize(width,height); 
      imageView.setImageBitmap(bitmap); 
    } 

}) 

Bằng cách này, các scaleType của ImageView như 'fitXY', 'centerCrop', 'fitCenter' và như vậy, cũng có thể làm sự khác biệt với cách Glide thay đổi kích thước hình ảnh.

+0

ở đâu là "thay đổi kích thước()"? –

+1

Đây là một phương pháp riêng, nhưng không phải là vấn đề. –

+0

cảm ơn @Qian Sijianhao –

0

`ImageView iv = (ImageView) findViewById (R.id.left);

chiều rộng int = 60; chiều cao int = 60;

LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams (chiều rộng, chiều cao); iv.setLayoutParams (parms);

Glide.with (context) .load (đường dẫn) .centerCrop(). CrossFade(). Vào (iv); `

Các vấn đề liên quan