1. main.xml页面资源文件的设计,其中涉及到GridView的表格布局。
<GridView
android:listSelector="@android:color/transparent"
android:id="@+id/gv_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="3" >
</GridView>
2.在对应的Activity中获取GridView控件,并设计适配器,绑定数据源。
package com.woo.mobilesafe;
import com.woo.mobilesafe.adapter.MainTabAdapter;
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
public class MainTabActivity extends Activity {
private GridView gv_main;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gv_main=(GridView) findViewById(R.id.gv_main);
//设计数据适配器, gridview数据绑定。
gv_main.setAdapter(new MainTabAdapter(this));
}
}
3.设计适配器MainTabAdaper
package com.woo.mobilesafe.adapter;
import com.woo.mobilesafe.R;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MainTabAdapter extends BaseAdapter {
//构造上下文对象
private Context context;
public MainTabAdapter(Context context) {
super();
this.context = context;
}
private static final String [] names={
"手机防盗","通讯卫士","软件管理","进程管理","流量统计",
"手机杀毒","系统优化","高级工具","设置中心"
};
private static final int[] icons={
R.drawable.safe,R.drawable.callmsgsafe,R.drawable.app,
R.drawable.taskmanager,R.drawable.netmanager,R.drawable.trojan,
R.drawable.sysoptimize,R.drawable.atools,R.drawable.settings};
@Override
public int getCount() {
return names.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertvView, ViewGroup parent) {
//main_item.xml布局资源文件转换为view对象
View view=View.inflate(context, R.layout.main_item, null);
//获取main_item.xml图标控件
ImageView iv=(ImageView) view.findViewById(R.id.iv_main_item_icon);
//不同的功能能,有不同的图标
iv.setImageResource(icons[position]);
//获取main_item.xml文字控件
TextView tv= (TextView) view.findViewById(R.id.tv_main_item_name);
//设置不同功能的不同文件
tv.setText(names[position]);
return view;
}
}
4.重写
适配器中的方法,其中涉及到设计main_item.xml图片和文字布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="75dip"
android:layout_height="wrap_content"
android:background="@drawable/main_item_selector"
android:gravity="center_horizontal"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv_main_item_icon"
android:layout_width="65dip"
android:layout_height="65dip"
android:layout_marginTop="5dip" />
<TextView
android:id="@+id/tv_main_item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dip"
android:textColor="@color/black"
android:textSize="18sp" />
</LinearLayout>
5.设计功能图片的点击事件背景颜色,资源文件
main_item_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/grey" android:state_pressed="true"/>
<!-- 被按压的时候 显示什么图形 -->
<item android:drawable="@color/grey" android:state_focused="true"/>
<!-- 获取焦点 -->
<item android:drawable="@android:color/transparent"/>
<!-- 默认的时候 显示的图形 -->
</selector>
注:
main_item_selector.xml 放在 drawable文件夹中