问题描述
- 【Android】GridView可以操作但不能显示图片
-
public class MainActivity extends Activity {
int [] imageIds = new int[]
{
R.drawable.one,R.drawable.two,R.drawable.three,
R.drawable.four,R.drawable.five,R.drawable.six};
ImageSwitcher switcher;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>(); for (int i = 0;i<imageIds.length;i++) { Map<String,Object> items = new HashMap<String,Object>(); items.put("iamge", imageIds[i]); listItems.add(items); } switcher = (ImageSwitcher)findViewById(R.id.switcher); switcher.setFactory(new ViewFactory() { @Override public View makeView() { // TODO Auto-generated method stub ImageView imageview = new ImageView(MainActivity.this); imageview.setScaleType(ImageView.ScaleType.FIT_CENTER); imageview.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); return imageview; } }); SimpleAdapter simpleadapter = new SimpleAdapter(this, listItems, R.layout.cell, new String[]{"image"},new int[]{R.id.image1} ); GridView grid01 = (GridView)findViewById(R.id.grid01); grid01.setAdapter(simpleadapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
}
解决方案
public View makeView() {
// TODO Auto-generated method stub
ImageView imageview = new ImageView(MainActivity.this);
imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageview.setLayoutParams(new ImageSwitcher.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
return imageview;
}
这个只是new了一个Imageview,但是没有为该ImageView设置显示内容。
解决方案二:
需要为这个Imageview添加内容,
SimpleAdapter s = new SimpleAdapter(getActivity(), lstImageItem,
R.layout.grid, new String[] { "ItemImage", "ItemText" },
new int[] { R.id.Itemimage });
gv.setAdapter(s);
时间: 2024-11-08 17:27:56