Android自学笔记 第二天

几年前得了拖延症,至今未愈,悲催!这不,隔了一周才看了一点东西。老师说四月份有个android应用大赛,作为专科党能加入这个比赛很是不易,是时候展现真正的技术了,。。。。


GridView网格布局

初学者,不是很懂,感觉GridView像什么壁纸应用、美食旅游什么应用里用的比较多。用起来很叼,省去传统布局的很多麻烦。

首先是xml文件(也可以在布局内定义GridView,具体方式差不都,就不写了。):

<?xml version="1.0" encoding="utf-8"?>  
<GridView  
  xmlns:android="http://schemas.android.com/apk/res/android"  
  android:id="@+id/gridView"  
  android:layout_width="fill_parent"  
  android:layout_height="fill_parent"  
  android:columnWidth="90dp"  
  android:numColumns="auto_fit"  
  android:horizontalSpacing="10dp"  
  android:verticalSpacing="10dp"  
  android:stretchMode="spacingWidth"  
  android:gravity="center">  
</GridView>  


然后是java元源代码:

private GridView gridView;
	private int img[] = { R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard,
			R.drawable.hard, R.drawable.hard, R.drawable.hard, R.drawable.hard};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		gridView = (GridView) findViewById(R.id.gridView);
		gridView.setAdapter(new MyGrid(this));
		gridView.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				System.out.println("---->" + arg2);
			}
		});

	}
public class MyGrid extends BaseAdapter {
		
		private Context context;
		
		public MyGrid(Context context){
			this.context = context;
		}
		
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return img.length;
		}

		@Override
		public Object getItem(int arg0) {
			// TODO Auto-generated method stub
			return arg0;
		}

		@Override
		public long getItemId(int arg0) {
			// TODO Auto-generated method stub
			return arg0;
		}

		@Override
		public View getView(int arg0, View arg1, ViewGroup arg2) {
			// TODO Auto-generated method stub
			ImageView imageView;
			if(arg1 == null){
				imageView = new ImageView(context);
				imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
				imageView.setScaleType(ScaleType.CENTER_INSIDE);
				imageView.setPadding(8, 8, 8, 8);
			}
			else {
				imageView = (ImageView) arg1;
			}
			imageView.setImageResource(img[arg0]);
			
			return imageView;
		}

	}

作为一个丢三落四的坑货来讲,开始做这个小demo中出现了问题。问题就是出现在"imageView.setLayoutParams(new GridView.LayoutParams(85,85));",最开始没有写GridView,导致程序出错。应该是包中有同名,一定要注意!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值