我试图让我的应用程序看起来像这样:
但是,我无法让第一张图片变得很大。这是我的适配器代码:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
int imgSize = 0;
if (convertView == null) {
//Size of the screen
WindowManager wm = (WindowManager) mContext
.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
imgSize = size.x / 4;
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(imgSize,
imgSize));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
//Trying to set image of the first column to be two times bigger than small images
imageView.setLayoutParams(new GridView.LayoutParams(imgSize * 2,
imgSize * 2));
imageView.setImageResource(mThumbIds2[0]);
return imageView;
}
public Integer[] mThumbIds = { R.drawable.mysmallpic, R.drawable.mysmallpic,
R.drawable.mysmallpic, R.drawable.mysmallpic, R.drawable.mysmallpic,
R.drawable.mysmallpic, R.drawable.mysmallpic, R.drawable.mysmallpic,
R.drawable.mysmallpic, R.drawable.mysmallpic, R.drawable.mysmallpic,
R.drawable.mysmallpic, R.drawable.mysmallpic, R.drawable.mysmallpic,
R.drawable.mysmallpic, R.drawable.mysmallpic, R.drawable.mysmallpic,
R.drawable.mysmallpic, R.drawable.mysmallpic, R.drawable.mysmallpic,
R.drawable.mysmallpic, R.drawable.mysmallpic };
public Integer[] mThumbIds2 = { R.drawable.mybigpic };
}
我怎样才能让我的第一张图片比其他图片更大?
谢谢!
答案 0 :(得分:0)
尝试此方法:如果position等于0,请将imageSize设置为屏幕大小的一半:
if (position == 0) {
imgSize = size.x / 2;
} else {
imgSize = size.x / 4;
}
getView()
方法的完整代码应为:
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
int imgSize = 0;
if (convertView == null) {
//Size of the screen
WindowManager wm = (WindowManager) mContext
.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
if (position == 0) {
imgSize = size.x / 2;
} else {
imgSize = size.x / 4;
}
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(imgSize,
imgSize));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}