您的位置:首页 > 移动开发 > Android开发

Android自学笔记 第二天

2014-03-23 20:22 239 查看
几年前得了拖延症,至今未愈,悲催!这不,隔了一周才看了一点东西。老师说四月份有个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,导致程序出错。应该是包中有同名,一定要注意!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: