原問題描述:
我想以gridview的視圖顯示圖像縮略圖,要求這些圖像排成一列以水平滾動條的形式顯示。我設置了很多參數,但是檢查不出哪裡出錯了。顯示出來的圖像根本不是按照原計劃顯示的。
解決方案:
[java]
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class Test2Activity extends Activity {
/** Called when the activity is first created. */
public Integer[] imageIDs = {
R.drawable.library,
R.drawable.library,
R.drawable.library,
R.drawable.library,
R.drawable.library,
R.drawable.library,
R.drawable.library
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridView = (GridView) findViewById(R.id.grid);
gridView.setAdapter(new ImageAdapter(this, imageIDs));
gridView.setNumColumns(imageIDs.length);
}
class ImageAdapter extends BaseAdapter
{
private Context context;
Integer[] imageIDs;
public ImageAdapter(Context c, Integer[] imageIDResults)
{
context = c;
imageIDs = imageIDResults;
}
public int getCount() {
return imageIDs.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{ www.2cto.com
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else { www.2cto.com
imageView = (ImageView) convertView;
}
imageView.setImageResource(imageIDs[position]);
return imageView;
}
}
}