ImageManager类,它是什么?它在哪里?

时间:2012-10-09 06:26:04

标签: android adapter listadapter android-gridview

我注意到他们在下面的代码中使用了一个名为ImageManager的类。这节课是什么,或者你是如何制作的?什么是ImageManager?

我在各种网站上看到了很多例子,他们使用它并且从不解释它或显示任何代码。看看导入状态,我想这是他们在代码示例中总是遗漏的东西。

   package com.google.android.panoramio;

   import android.content.Context;
   import android.database.DataSetObserver;
   import android.view.LayoutInflater;
   import android.view.View;
   import android.view.ViewGroup;
   import android.widget.BaseAdapter;
   import android.widget.ImageView;
   import android.widget.TextView;

   /**
   * Adapter used to bind data for the main list of photos
   */
   public class ImageAdapter extends BaseAdapter {

   /**
    * Maintains the state of our data
    */
   private ImageManager mImageManager;

   private Context mContext;

   private MyDataSetObserver mObserver;

  /**
   * Used by the {@link ImageManager} to report changes in the list back to
   * this adapter.
   */
   private class MyDataSetObserver extends DataSetObserver {
   @Override
   public void onChanged() {
   notifyDataSetChanged();
   }

   @Override
   public void onInvalidated() {
   notifyDataSetInvalidated();
   }
   }

   public ImageAdapter(Context c) {
   mImageManager = ImageManager.getInstance(c);
   mContext = c;
   mObserver = new MyDataSetObserver();

   mImageManager.addObserver(mObserver);
   }

   /**
   * Returns the number of images to display
   * 
   * @see android.widget.Adapter#getCount()
   */
   public int getCount() {
      return mImageManager.size();
   }

   /**
    * Returns the image at a specified position
    * 
    * @see android.widget.Adapter#getItem(int)
   */
   public Object getItem(int position) {
    return mImageManager.get(position);
   }

  /**
  * Returns the id of an image at a specified position
  * 
  * @see android.widget.Adapter#getItemId(int)
  */
  public long getItemId(int position) {
    PanoramioItem s = mImageManager.get(position);
    return s.getId();
  }

 /**
 * Returns a view to display the image at a specified position
 * 
 * @param position The position to display
 * @param convertView An existing view that we can reuse. May be null.
 * @param parent The parent view that will eventually hold the view we return.
 * @return A view to display the image at a specified position
 */
 public View getView(int position, View convertView, ViewGroup parent) {
 View view;
 if (convertView == null) {
 // Make up a new view
 LayoutInflater inflater = (LayoutInflater) mContext
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 view = inflater.inflate(R.layout.image_item, null);
 } else {
 // Use convertView if it is available
 view = convertView;
 }
 PanoramioItem s = mImageManager.get(position);

 ImageView i = (ImageView) view.findViewById(R.id.image);
 i.setImageBitmap(s.getBitmap());
 i.setBackgroundResource(R.drawable.picture_frame);

 TextView t = (TextView) view.findViewById(R.id.title);
 t.setText(s.getTitle());

 t = (TextView) view.findViewById(R.id.owner);
 t.setText(s.getOwner());
 return view;
 }

 }

0 个答案:

没有答案