为什么imageView需要传递一个上下文?

时间:2012-06-23 05:08:06

标签: android gridview android-imageview android-context

我正在尝试按照构建GridView布局的教程,但我看到上下文被传递给图像适配器,我不想复制代码或只是重新键入它而不知道为什么要这样做所以我想知道它为什么通过。我基本了解它是关于应用程序或其环境的信息。

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
private Context mContext;

// Keep all Images in array
public Integer[] mThumbIds = {
        R.drawable.pic_1, R.drawable.pic_2,
        R.drawable.pic_3, R.drawable.pic_4,
        R.drawable.pic_5, R.drawable.pic_6,
        R.drawable.pic_7, R.drawable.pic_8,
        R.drawable.pic_9, R.drawable.pic_10,
        R.drawable.pic_11, R.drawable.pic_12,
        R.drawable.pic_13, R.drawable.pic_14,
        R.drawable.pic_15
};

// Constructor
public ImageAdapter(Context c){
    mContext = c;
}

@Override
public int getCount() {
    return mThumbIds.length;
}

@Override
public Object getItem(int position) {
    return mThumbIds[position];
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(mContext);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    return imageView;
}

}

2 个答案:

答案 0 :(得分:0)

ImageAdapter将上下文存储在mContext的构造函数中,因为ImageView构造函数稍后需要它在自己的构造函数中。与所有视图一样,ImageView需要一个上下文,通过它可以访问当前主题,资源等。

答案 1 :(得分:0)

查看此链接以获取更多信息Context Info,了解详细信息用于不同用途的详细信息如果想要查看上下文类Context Class

,请查看此链接