关于android 继承了BaseAdapter类后的一些问题,我这个程序就是为了实现一个图片的拖拽,就是Gallery
publicclassImageAdapterextendsBaseAdapter{//定义ContextprivateContextmContext;//定义整型数组即...
public class ImageAdapter extends BaseAdapter
{
// 定义Context
private Context mContext;
// 定义整型数组 即图片源
private Integer[] mImageIds =
{
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
};
// 声明 ImageAdapter
public ImageAdapter(Context c)
{
mContext = c;
}
// 获取图片的个数
public int getCount()
{
return mImageIds.length;
}
// 获取图片在库中的位置
public Object getItem(int position)
{
return position;
}
// 获取图片ID
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageview = new ImageView(mContext);
int count = 0 ;
if(position==0){ count =2;}
else count = 3;
// 给ImageView设置资源
imageview.setImageResource(mImageIds[count]);
// 设置布局 图片120×120显示
imageview.setLayoutParams(new Gallery.LayoutParams(120, 120));
// 设置显示比例类型
imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);
return imageview;
}
}
}
这个是那个类 的代码,我只想问那个getView中的position到底是几,或者说它可以代表0,1,2,3,4? 那5个图片是怎么按顺序添加到ImageView中的?那个ImageId[position]到底代表了什么?是代表了5个不同的图片么?我真 的不懂了。。 展开
{
// 定义Context
private Context mContext;
// 定义整型数组 即图片源
private Integer[] mImageIds =
{
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
};
// 声明 ImageAdapter
public ImageAdapter(Context c)
{
mContext = c;
}
// 获取图片的个数
public int getCount()
{
return mImageIds.length;
}
// 获取图片在库中的位置
public Object getItem(int position)
{
return position;
}
// 获取图片ID
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageview = new ImageView(mContext);
int count = 0 ;
if(position==0){ count =2;}
else count = 3;
// 给ImageView设置资源
imageview.setImageResource(mImageIds[count]);
// 设置布局 图片120×120显示
imageview.setLayoutParams(new Gallery.LayoutParams(120, 120));
// 设置显示比例类型
imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);
return imageview;
}
}
}
这个是那个类 的代码,我只想问那个getView中的position到底是几,或者说它可以代表0,1,2,3,4? 那5个图片是怎么按顺序添加到ImageView中的?那个ImageId[position]到底代表了什么?是代表了5个不同的图片么?我真 的不懂了。。 展开
2个回答
展开全部
因为你的getCount()返回的是mImageIds.length为5;
所以 getView(int position, ... )会先后将自动被调用5次。产生5个view。这5个view就是你在Galley里看到的5个view。
第一次调用,position=0.
每二次调用,position=1,
。。。
最后一次,position=4.
只要在你的getView(int position, ... )方法中写成imageview.setImageResource(mImageIds[position]);
因为每次position不一样,刚好就把你的五幅图顺序摆放了。
所以 getView(int position, ... )会先后将自动被调用5次。产生5个view。这5个view就是你在Galley里看到的5个view。
第一次调用,position=0.
每二次调用,position=1,
。。。
最后一次,position=4.
只要在你的getView(int position, ... )方法中写成imageview.setImageResource(mImageIds[position]);
因为每次position不一样,刚好就把你的五幅图顺序摆放了。
追问
可是为什么每次都报错啊。。这程序应该没问题吧
追答
那你得告诉我什么错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询