2012-11-30 35 views
17

Tôi đã tự hỏi liệu có cơ chế hiển thị ProgressBar xoay vòng không thay đổi ở vị trí của hình ảnh trong khi đang tải bằng Trình tải ảnh toàn cục.Hiển thị ProgressBar không xác định trong khi đang tải hình ảnh bằng Trình tải ảnh phổ quát

Hiện tại, tôi đang sử dụng tùy chọn showStubImage() trong DisplayImageOptions để hiển thị hình ảnh có nội dung "Không có hình ảnh" trong khi hình ảnh đang được tải xuống, nhưng nó sẽ thực sự mượt mà nếu có ProgressBar xoay vòng trên đầu của ImageView trong khi hình ảnh đang được tải xuống.

Trả lời

54

For reference

final View imageLayout = inflater.inflate(R.layout.item_pager_image, null); 
final ImageView imageView = ... 
final ProgressBar spinner = ... 

imageLoader.displayImage(images[position], imageView, options, new SimpleImageLoadingListener() { 
    @Override 
    public void onLoadingStarted(String imageUri, View view) { 
     spinner.setVisibility(View.VISIBLE); 
    } 

    @Override 
    public void onLoadingFailed(String imageUri, View view, FailReason failReason) { 
     spinner.setVisibility(View.GONE); 
    } 

    @Override 
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
     spinner.setVisibility(View.GONE); 
    } 
}); 
+0

Có vẻ tốt với tôi, cảm ơn câu trả lời nhanh! – DiscDev

+0

Cảm ơn bạn. Tôi không sử dụng nó, nhưng nó đã cho tôi ý tưởng để sử dụng ActionBar ProgressBar :) –

+2

@NOSTRA liên kết là 404 –

1

Tôi gửi bài mã lớp lưới Adaptor mà tôi sử dụng để tải hình ảnh từ web. Bạn phải khai báo bố trí lưới với một imageview và hai textviews. Chuyển các mảng chuỗi vào bộ điều hợp.

@Override 
public View getView(final int position, View convertView, ViewGroup parent) 
{ 
    // TODO Auto-generated method stub 
    LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(activity.LAYOUT_INFLATER_SERVICE); 
    //LayoutInflater inflator = activity.getLayoutInflater(); 
    if(convertView==null) 
    { 
     view = new ViewHolder(); 
     convertView = inflater.inflate(R.layout.grid_layout, null); 
     view.txtViewTitle = (TextView) convertView.findViewById(R.id.title); 
     view.txtViewSubTitle = (TextView) convertView.findViewById(R.id.subTitle); 
     view.imgViewFlag = (ImageView) convertView.findViewById(R.id.imageView1); 
     convertView.setTag(view); 
    } 
    else 
    { 
     view = (ViewHolder) convertView.getTag(); 
    } 

    view.txtViewTitle.setText(listTitle.get(position)); 
    view.txtViewSubTitle.setText(listSubTitle.get(position)); 

    //For Picasso 
/* Picasso.with(parent.getContext()) 
      .load("http://www.radioarpan.com/upload_images/138630281911.jpg") 
      .placeholder(R.mipmap.paceholder) 
      .error(R.mipmap.error_page_logo) 
      .noFade().resize(125,165) 
      .centerCrop() 
      .into(view.imgViewFlag);*/ 



    ImageLoader imageLoader = ImageLoader.getInstance(); 
    DisplayImageOptions.Builder options = new DisplayImageOptions.Builder().cacheInMemory(true) 
      .cacheOnDisc(true).resetViewBeforeLoading(true) 
      .showImageForEmptyUri(R.mipmap.paceholder) 
      .showImageOnFail(R.mipmap.error_page_logo); 


    final ProgressBar spinner = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall); 
//download and display image from url 
     imageLoader.displayImage("http://www.radioarpan.com/upload_images/138630281911.jpg", view.imgViewFlag,new SimpleImageLoadingListener() 
    { 
     @Override 
     public void onLoadingStarted(String imageUri, View view) 
     { 
      spinner.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onLoadingFailed(String imageUri, View view, FailReason failReason) 
     { 
      spinner.setVisibility(View.GONE); 
     } 

     @Override 
     public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) 
     { 
      spinner.setVisibility(View.GONE); 
     } 
    }); 
+0

Tôi không nhận được cách đặt mã ở đây một cách thích hợp.Vì vậy, xin lỗi vì định dạng bài đăng cuối cùng –

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