2013-05-16 86 views
0

我想要在圖庫視圖中加載圖像的方式是,一旦圖像加載,而不是用戶滾動之後,要顯示加載指示符,並且要顯示新圖像之後。 在我的下面的代碼中,它需要所有的數據(包括圖像)和顯示。在圖庫中查看加載圖像

這裏是我的代碼:

ProductDetailsActivity.java

public class ProductsDetailActivity extends BaseActivity implements 
     OnClickListener, OnItemSelectedListener { 
    Gallery gallery; 
    TextView prod_descri, productTitle1, productTitle2; 
    ImageAdapter imageAdapter; 
    ImageView leftArrow, rightArrow; 
    private int selectedImagePosition = 0; 
    private List<Drawable> drawables; 
    String title, url, title1; 
    Bundle b; 
    Products product; 
    ProductDetails pDetails; 
    ArrayList<ProductDetails> productList; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.products_details); 
     init(); 

     setTitle(getResources().getString(R.string.title_product)); 
     b = getIntent().getExtras(); 
     product = (Products) b.getSerializable("product"); 
     if (b != null) { 
      if (Global.isNetworkAvailable(ProductsDetailActivity.this)) { 
       new ProductAsyncTask().execute(Constants.url, 
         product.product_id); 
      } else { 

       Intent intent = new Intent(ProductsDetailActivity.this, 
         OfflineActivity.class); 
       startActivity(intent); 
      } 
     } else { 
      Log.v("Bundle", "Bundle null"); 
     } 

    } 
    private void init() { 
     productList = new ArrayList<ProductDetails>(); 
     gallery = (Gallery) findViewById(R.id.product_gallery); 
     prod_descri = (TextView) findViewById(R.id.product_desc); 
     productTitle1 = (TextView) findViewById(R.id.productTitle1); 
     productTitle2 = (TextView) findViewById(R.id.productTitle2); 
     leftArrow = (ImageView) findViewById(R.id.left_arrow_imageview); 
     rightArrow = (ImageView) findViewById(R.id.right_arrow_imageview); 
     leftArrow.setOnClickListener(this); 
     rightArrow.setOnClickListener(this); 
     gallery.setOnItemSelectedListener(this); 

    } 
    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
     case R.id.left_arrow_imageview: 

      if (selectedImagePosition > 0) { 

       // leftArrow.setVisibility(View.VISIBLE); 
       --selectedImagePosition; 
      } else if (selectedImagePosition == 0) { 
       leftArrow.setVisibility(View.INVISIBLE); 
       rightArrow.setVisibility(View.VISIBLE); 
      } 
      gallery.setSelection(selectedImagePosition, true); 

      break; 
     case R.id.right_arrow_imageview: 
      if (selectedImagePosition < drawables.size() - 1) { 
       // rightArrow.setVisibility(View.VISIBLE); 

       ++selectedImagePosition; 
      } else if (selectedImagePosition == drawables.size() - 1) { 
       rightArrow.setVisibility(View.INVISIBLE); 
       leftArrow.setVisibility(View.VISIBLE); 
      } 

      gallery.setSelection(selectedImagePosition, true); 

      break; 
     default: 
      break; 
     } 

    } 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, 
      long id) { 

     selectedImagePosition = position; 

     productTitle1.setText(product.title); 
     productTitle2.setText(product.title); 
     prod_descri.setText(product.long_description); 

     if (selectedImagePosition > 0 
       && selectedImagePosition < drawables.size() - 1) { 
      leftArrow.setVisibility(View.VISIBLE); 
      rightArrow.setVisibility(View.VISIBLE); 
     } else if (selectedImagePosition == 0 && drawables.size() > 1) { 
      leftArrow.setVisibility(View.INVISIBLE); 
      rightArrow.setVisibility(View.VISIBLE); 
     } else if (selectedImagePosition == drawables.size() - 1 
       && drawables.size() > 1) { 
      rightArrow.setVisibility(View.INVISIBLE); 
      leftArrow.setVisibility(View.VISIBLE); 
     } else if (drawables.size() == 1) { 
      rightArrow.setVisibility(View.INVISIBLE); 
      leftArrow.setVisibility(View.INVISIBLE); 
     } 
     // setSelectedImage(selectedImagePosition); 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> arg0) { 
    } 

    // AsyncTask 

    public class ProductAsyncTask extends 
      AsyncTask<String, String, ArrayList<ProductDetails>> { 

     private Context getDialogContext() { 
      Context context; 
      if (getParent() != null) 
       context = getParent(); 
      else 
       context = ProductsDetailActivity.this; 
      return context; 
     } 

     String responseString = null; 
     ProgressDialog progressDialog; 

     public ProductAsyncTask() { 
      super(); 
      // progressDialog = new ProgressDialog(ProductsDetailActivity.this); 
      progressDialog = new ProgressDialog(getDialogContext()); 
      progressDialog.setCancelable(false); 
     } 

     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      progressDialog.setMessage("Loading..."); 
      progressDialog.show(); 
     } 

     @Override 
     protected ArrayList<ProductDetails> doInBackground(String... params) { 

      responseString = readJSONSFeed(params[0], params[1]); 

      if (responseString != null) { 
        return processProductDetailsJSON(responseString); 
      } else { 

       return null; 
      } 
     } 

     @Override 
     protected void onPostExecute(ArrayList<ProductDetails> result) { 
      super.onPostExecute(result); 
      try { 
       if (result.size() == 0 || result == null) { 

       } 
       progressDialog.dismiss(); 

       drawables = createDrawables(result); 
       imageAdapter = new ImageAdapter(ProductsDetailActivity.this, 
         drawables); 
       if (drawables.size() > 0) { 

        gallery.setSelection(selectedImagePosition, true); 
       } 

       if (drawables.size() == 1) { 
        leftArrow.setVisibility(View.INVISIBLE); 
        rightArrow.setVisibility(View.INVISIBLE); 
       } 

       gallery.setAdapter(imageAdapter); 

      } catch (Exception e) { 

       e.printStackTrace(); 
      } 

     } 

     private List<Drawable> createDrawables(ArrayList<ProductDetails> result) { 

      List<Drawable> drawablesUrl = new ArrayList<Drawable>(); 
      try { 
       for (ProductDetails objProDetails : result) { 
        drawablesUrl.add(Global.getBitmapFromURL(
          ProductsDetailActivity.this, 
          objProDetails.image_path)); 
        // drawablesUrl.add(loadImageFromURL(objProDetails.image_path)); 
       } 
       return drawablesUrl; 

      } catch (Exception e) { 

       return null; 
      } 

     } 

     @SuppressWarnings("unused") 
     private Drawable loadImageFromURL(String image_path) { 
      try { 
       InputStream is = (InputStream) new URL(url).getContent(); 
       Drawable d = Drawable.createFromStream(is, "src name"); 
       return d; 
      } catch (Exception e) { 
       return getResources().getDrawable(R.drawable.noimage); 
      } 
     } 

     private String readJSONSFeed(String url, String productID) { 

      StringBuilder stringBuilder = new StringBuilder(); 

      HttpClient httpClient = new DefaultHttpClient(); 
      HttpGet httpGet = new HttpGet(url + Constants.REQ_FOR_PRODUCT_IMAGE 
        + productID + Constants.REQ_FOR_OFFER); 

      httpGet.setHeader("Content-Type", "application/json"); 
      httpGet.setHeader("password", "password"); 
      httpGet.setHeader("username", "user"); 

      try { 
       HttpResponse response = httpClient.execute(httpGet); 
       StatusLine statusLine = response.getStatusLine(); 

       int statuscode = statusLine.getStatusCode(); 

       if (statuscode == 200) { 

        HttpEntity httpEntity = response.getEntity(); 
        InputStream inputStream = httpEntity.getContent(); 

        BufferedReader buffer = new BufferedReader(
          new InputStreamReader(inputStream)); 

        String line = null; 
        if ((line = buffer.readLine()) != null) { 
         stringBuilder.append(line); 
        } 
        // buffer.close(); 
        inputStream.close(); 

       } else { 

       } 

      } catch (Exception e) { 

      } 
      return stringBuilder.toString(); 
     } 

     private synchronized ArrayList<ProductDetails> processProductDetailsJSON(
       String response) { 

      try { 
       JSONObject json = new JSONObject(response); 
       JSONArray Records = json 
         .getJSONArray(Constants.JSON_OBJECT_DATA); 

       for (int i = 0; i < Records.length(); i++) { 
        JSONObject Record = Records.getJSONObject(i); 

        String tTitle = Record.getString("title"); 
        String tImagePath = Record.getString("image_path"); 
        String tDescription = Record.getString("description"); 
        tImagePath = Constants.REQ_IMAGE_PRODUCT + tImagePath; 
        pDetails = new ProductDetails(tDescription, tTitle, 
          tImagePath); 

        if (pDetails == null) { 

        } else { 
         productList.add(pDetails); 

        } 
       } 


      } catch (JSONException ex) { 
       System.out.println(ex); 
       return null; 
      } 

      return productList; 
     } 

    } 

ImageAdapter.java

public class ImageAdapter extends BaseAdapter { 

    private Activity context; 

    ImageView imageView; 
    private List<Drawable> totalImages; 
    private static ViewHolder holder; 

    ArrayList<Object> imageGallery; 
    int width; 
    int height; 
    Display display; 
    int[] images = { R.drawable.ic_launcher, R.drawable.ic_launcher }; 

    public ImageAdapter(Context c, List<Drawable> drawables) { 
     this.context = (Activity) c; 
     imageGallery = new ArrayList<Object>(); 
     this.totalImages = drawables; 
     display = context.getWindowManager().getDefaultDisplay(); 
     // this.imageGallery = objects; 
//  width = display.getWidth(); 
//  height = display.getHeight(); 

    } 

    @Override 
    public int getCount() { 

     return totalImages.size(); 
     // return 1; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     try { 
      if (convertView == null) { 
       holder = new ViewHolder(); 
       imageView = new ImageView(this.context); 
       convertView = imageView; 
       holder.imageView = imageView; 
       convertView.setTag(holder); 
      } else { 

       holder = (ViewHolder) convertView.getTag(); 
      } 

      holder.imageView.setImageDrawable(totalImages.get(position)); 


      holder.imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT, 
        LayoutParams.MATCH_PARENT)); 


      holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY); 





      return imageView; 

     } catch (Exception e) { 
      e.printStackTrace(); 
      return imageView; 
     } 

    } 

    static class ViewHolder { 
     public ViewHolder() { 

     } 

     ImageView imageView; 
    } 


} 

Here is my CustomArrayAdapter 
CustomArrayAdapter.java 

public class CustomArrayAdapter extends ArrayAdapter<Object> { 
    Context mContext; 
    ArrayList<Products> product; 
    int layoutId; 
    ImageLoader imageLoader; 

    public CustomArrayAdapter(Context context, int textViewResourceId, 
      ArrayList<Products> objects) { 
     super(context, textViewResourceId); 
     this.mContext = context; 
     this.layoutId = textViewResourceId; 

     this.product = objects; 
     imageLoader = new ImageLoader(context, R.drawable.noimage); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     ViewHolder holder; 
     LayoutInflater layoutInflater = (LayoutInflater) mContext 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = layoutInflater.inflate(layoutId, parent, false); 
     holder = new ViewHolder(convertView); 
     holder.setValues(product.get(position)); 

     return convertView; 
    } 

    public int getCount() { 
     return product.size(); 
    } 

    public class ViewHolder { 
     TextView tvProductTitle; 
     TextView tvProductDescription; 
     ImageView ivProductLogo, imgArrow; 

     public ProgressBar progress; 

     public ViewHolder(View v) { 
      tvProductTitle = (TextView) v.findViewById(R.id.tvTitle); 
      tvProductDescription = (TextView) v 
        .findViewById(R.id.tvDescriptions); 
      ivProductLogo = (ImageView) v.findViewById(R.id.ivLogoProduct); 
      imgArrow = (ImageView) v.findViewById(R.id.imgArrow); 
      progress = (ProgressBar) v.findViewById(R.id.progress_bar); 
     } 

     public void setValues(Products products) { 

      tvProductTitle.setText(products.title); 
      tvProductDescription.setText(products.short_description); 

      // imageLoader.displayImage(products.image, imageView, options); 

      try { 
       ImageLoader imageLoader = new ImageLoader(mContext); 

       DisplayImageOptions options = new DisplayImageOptions.Builder() 
         .cacheOnDisc().build(); 
       imageLoader.DisplayImage(products.image, ivProductLogo); 

       if (Global.fromProduct) { 

        imgArrow.setImageDrawable(mContext.getResources().getDrawable(R.drawable.cell_arrow_right)); 
       } else { 
        imgArrow.setImageDrawable(mContext.getResources().getDrawable(R.drawable.info_btn)); 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

      // try { 

     } 

     @SuppressWarnings("unused") 
     private boolean cancelPotentialDownload(String url, ImageView imageView) { 
      BitmapDownloaderTask bitmapDownloaderTask = getBitmapDownloaderTask(imageView); 

      if (bitmapDownloaderTask != null) { 
       String bitmapUrl = bitmapDownloaderTask.url; 
       if ((bitmapUrl == null) || (!bitmapUrl.equals(url))) { 
        bitmapDownloaderTask.cancel(true); 
       } else { 
        // The same URL is already being downloaded. 
        return false; 
       } 
      } 
      return true; 
     } 

     private BitmapDownloaderTask getBitmapDownloaderTask(ImageView imageView) { 
      if (imageView != null) { 
       Drawable drawable = imageView.getDrawable(); 
       if (drawable instanceof DownloadedDrawable) { 
        DownloadedDrawable downloadedDrawable = (DownloadedDrawable) drawable; 
        return downloadedDrawable.getBitmapDownloaderTask(); 
       } 
      } 
      return null; 
     } 
    } 

}' 
+0

你需要顯示來自互聯網的圖像,當你滾動顯示一個微調加載圖像之前? – Raghunandan

+0

是的,我想要那樣。 –

+0

檢查下面的答案。 – Raghunandan

回答

2

https://github.com/nostra13/Android-Universal-Image-Loader下載通用圖像加載程序。通過從互聯網上下載圖片的下面顯示的圖像:

jar文件添加到您的libs文件夾項目的

注意。您還可以提供SD卡文件夾中的圖像路徑。

Universal Image Loader是Lazy Loading的改進版本。異步加載圖像。你可以在你的SD卡或手機內存中緩存圖像,如果您是從網上

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="fill_parent"> 

<GridView 
    android:id="@+id/PhoneImageGrid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:columnWidth="90dp" 
    android:gravity="center" 
    android:horizontalSpacing="10dp" 
    android:numColumns="3" 
    android:stretchMode="columnWidth" 
    android:verticalSpacing="10dp" /> 

</RelativeLayout> 

row_image.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 

android:orientation="vertical" > 

<ImageView 
    android:id="@+id/ivv" 
    android:layout_gravity="center" 
    android:layout_width="300dp" 
    android:layout_height="300dp" 

    /> 
<ProgressBar 
    android:id="@+id/pb" 
    android:layout_centerInParent="true" 
    android:layout_gravity="center" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 

</RelativeLayout> 

下載圖像AndroidCustomGalleryActivity.java

public class AndroidCustomGalleryActivity extends Activity { 

private ImageAdapter imageAdapter; 
private String[] mStrings={ 
     "http://a3.twimg.com/profile_images/670625317/aam-logo-v3-twitter.png", 
     "http://a3.twimg.com/profile_images/740897825/AndroidCast-350_normal.png", 
     "http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg", 
     "http://a1.twimg.com/profile_images/957149154/twitterhalf_normal.jpg", 
     "http://a1.twimg.com/profile_images/97470808/icon_normal.png", 
     "http://a3.twimg.com/profile_images/511790713/AG.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar_normal.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man_normal.png", 
     "http://a3.twimg.com/profile_images/72774055/AndroidHomme-LOGO_normal.jpg", 
     "http://a1.twimg.com/profile_images/349012784/android_logo_small_normal.jpg", 
     "http://a1.twimg.com/profile_images/841338368/ea-twitter-icon.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto_normal.jpg", 
     "http://a1.twimg.com/profile_images/850960042/elandroidelibre-logo_300x300_normal.jpg", 
     "http://a1.twimg.com/profile_images/655119538/andbook.png", 
     "http://a3.twimg.com/profile_images/768060227/ap4u_normal.jpg", 
     "http://a1.twimg.com/profile_images/74724754/android_logo_normal.png", 
     "http://a3.twimg.com/profile_images/681537837/SmallAvatarx150_normal.png", 
     "http://a1.twimg.com/profile_images/63737974/2008-11-06_1637_normal.png", 
     "http://a3.twimg.com/profile_images/548410609/icon_8_73.png", 
     "http://a1.twimg.com/profile_images/612232882/nexusoneavatar_normal.jpg", 
     "http://a1.twimg.com/profile_images/213722080/Bugdroid-phone_normal.png", 
     "http://a1.twimg.com/profile_images/645523828/OT_icon_090918_android_normal.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto_normal.jpg", 
     "http://a1.twimg.com/profile_images/850960042/elandroidelibre-logo_300x300_normal.jpg", 
     "http://a1.twimg.com/profile_images/655119538/andbook_normal.png", 
     "http://a3.twimg.com/profile_images/511790713/AG_normal.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man_normal.png", 
     "http://a3.twimg.com/profile_images/72774055/AndroidHomme-LOGO_normal.jpg", 
     "http://a1.twimg.com/profile_images/349012784/android_logo_small_normal.jpg", 
     "http://a1.twimg.com/profile_images/841338368/ea-twitter-icon_normal.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto_normal.jpg", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto_normal.jpg", 
     "http://a1.twimg.com/profile_images/850960042/elandroidelibre-logo_300x300.jpg", 
     "http://a1.twimg.com/profile_images/655119538/andbook_normal.png", 
     "http://a3.twimg.com/profile_images/511790713/AG_normal.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar_normal.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man_normal.png", 
     "http://a3.twimg.com/profile_images/121630227/Droid.jpg", 
     "http://a1.twimg.com/profile_images/957149154/twitterhalf_normal.jpg", 
     "http://a1.twimg.com/profile_images/97470808/icon_normal.png", 
     "http://a3.twimg.com/profile_images/511790713/AG_normal.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar_normal.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man.png", 
     "http://a3.twimg.com/profile_images/72774055/AndroidHomme-LOGO_normal.jpg", 
     "http://a1.twimg.com/profile_images/349012784/android_logo_small_normal.jpg", 
     "http://a1.twimg.com/profile_images/841338368/ea-twitter-icon_normal.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet.png", 
     "http://a3.twimg.com/profile_images/670625317/aam-logo-v3-twitter_normal.png", 
     "http://a3.twimg.com/profile_images/740897825/AndroidCast-350_normal.png", 
     "http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg", 
     "http://a1.twimg.com/profile_images/957149154/twitterhalf_normal.jpg", 
     "http://a1.twimg.com/profile_images/97470808/icon.png", 
     "http://a3.twimg.com/profile_images/511790713/AG_normal.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar_normal.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man_normal.png", 
     "http://a3.twimg.com/profile_images/72774055/AndroidHomme-LOGO_normal.jpg", 
     "http://a1.twimg.com/profile_images/349012784/android_logo_small_normal.jpg", 
     "http://a1.twimg.com/profile_images/841338368/ea-twitter-icon.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto_normal.jpg", 
     "http://a1.twimg.com/profile_images/850960042/elandroidelibre-logo_300x300_normal.jpg", 
     "http://a1.twimg.com/profile_images/655119538/andbook_normal.png", 
     "http://a3.twimg.com/profile_images/768060227/ap4u_normal.jpg", 
     "http://a1.twimg.com/profile_images/74724754/android_logo.png", 
     "http://a3.twimg.com/profile_images/681537837/SmallAvatarx150_normal.png", 
     "http://a1.twimg.com/profile_images/63737974/2008-11-06_1637_normal.png", 
     "http://a3.twimg.com/profile_images/548410609/icon_8_73_normal.png", 
     "http://a1.twimg.com/profile_images/612232882/nexusoneavatar_normal.jpg", 
     "http://a1.twimg.com/profile_images/213722080/Bugdroid-phone_normal.png", 
     "http://a1.twimg.com/profile_images/645523828/OT_icon_090918_android.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto_normal.jpg", 
     "http://a1.twimg.com/profile_images/850960042/elandroidelibre-logo_300x300_normal.jpg", 
     "http://a1.twimg.com/profile_images/655119538/andbook.png", 
     "http://a3.twimg.com/profile_images/511790713/AG_normal.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar_normal.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man_normal.png", 
     "http://a3.twimg.com/profile_images/72774055/AndroidHomme-LOGO_normal.jpg", 
     "http://a1.twimg.com/profile_images/349012784/android_logo_small_normal.jpg", 
     "http://a1.twimg.com/profile_images/841338368/ea-twitter-icon.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto_normal.jpg", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png", 
     "http://a1.twimg.com/profile_images/605536070/twitterProfilePhoto.jpg", 
     "http://a1.twimg.com/profile_images/850960042/elandroidelibre-logo_300x300_normal.jpg", 
     "http://a1.twimg.com/profile_images/655119538/andbook_normal.png", 
     "http://a3.twimg.com/profile_images/511790713/AG_normal.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar_normal.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man_normal.png", 
     "http://a3.twimg.com/profile_images/121630227/Droid_normal.jpg", 
     "http://a1.twimg.com/profile_images/957149154/twitterhalf.jpg", 
     "http://a1.twimg.com/profile_images/97470808/icon_normal.png", 
     "http://a3.twimg.com/profile_images/511790713/AG_normal.png", 
     "http://a3.twimg.com/profile_images/956404323/androinica-avatar_normal.png", 
     "http://a1.twimg.com/profile_images/909231146/Android_Biz_Man_normal.png", 
     "http://a3.twimg.com/profile_images/72774055/AndroidHomme-LOGO_normal.jpg", 
     "http://a1.twimg.com/profile_images/349012784/android_logo_small.jpg", 
     "http://a1.twimg.com/profile_images/841338368/ea-twitter-icon_normal.png", 
     "http://a3.twimg.com/profile_images/64827025/android-wallpaper6_2560x160_normal.png", 
     "http://a3.twimg.com/profile_images/77641093/AndroidPlanet_normal.png" 
}; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    GridView imagegrid = (GridView) findViewById(R.id.PhoneImageGrid); 
    imageAdapter = new ImageAdapter(); 
    imagegrid.setAdapter(imageAdapter); 


} 

public class ImageAdapter extends BaseAdapter { 
    private LayoutInflater mInflater; 
    ImageLoader imageLoader; 
     DisplayImageOptions options; 
    public ImageAdapter() { 

     //Get singletone instance of ImageLoader 
      imageLoader = ImageLoader.getInstance(); 
     // Create configuration for ImageLoader (all options are optional) 
      ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(AndroidCustomGalleryActivity.this) 
         // You can pass your own memory cache implementation 
        .discCacheExtraOptions(1024, 1024, CompressFormat.PNG, 100) 
        // You can pass your own disc cache implementation 
        .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) 
        .enableLogging() 
        .build(); 
      imageLoader.init(config); 
     options = new DisplayImageOptions.Builder() 
      .showImageForEmptyUri(R.drawable.ic_launcher) 
      .resetViewBeforeLoading() 
      .cacheOnDisc() 
      .imageScaleType(ImageScaleType.IN_SAMPLE_INT) 
      .bitmapConfig(Bitmap.Config.RGB_565) 
      .displayer(new FadeInBitmapDisplayer(300)) 
      .build(); 
     mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    public int getCount() { 
     return mStrings.length; 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 
     if (convertView == null) { 
      holder = new ViewHolder(); 
      convertView = mInflater.inflate(
        R.layout.rowimage, null); 
      holder.imageview = (ImageView) convertView.findViewById(R.id.ivv); 
      holder.pb = (ProgressBar) convertView.findViewById(R.id.pb); 
      convertView.setTag(holder); 
     } 
     else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 

     display(holder.imageview, mStrings[position].toString(), holder.pb); 
     // imageLoader.displayImage(data.get(position).toString(), holder.imageview,options); 
     return convertView; 
    } 
    public void display(ImageView img, String url, final ProgressBar spinner) 
     { 
      imageLoader.displayImage(url, img, options, new ImageLoadingListener() { 
       @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); 
       } 
       @Override 
       public void onLoadingCancelled(String imageUri, View view) { 

       } 

     }); 
     } 

} 
class ViewHolder { 
    ImageView imageview; 
    ProgressBar pb; 

} 
} 
+0

上面使用的圖像鏈接用於測試,圖像可能會重複。請記得在清單中添加Internet權限 – Raghunandan

0

我認爲你應該使用線程對於看起來像以下:

logoImageView.setImageDrawable(R.id.drawable.company_logo); 
    Thread.sleep(1000); // sleep for a second (1000 ms) 
    nameImageView.setImageDrawable(R.id.drawable.company_name); 
    Thread.sleep(1000); 
    sloganImageView.setImageDrawable(R.id.drawable.company_slogan); 

它只是爲了理解你。