GridView就是先将控件横向显示,然后纵向显示
效果如上所示
先看一下GridView的布局文件
<?xml version="1.0" encoding="utf-8"?>
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/brainheroall"
android:background="#FFeff1ef"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
这是如何显示GridView,下面的xml文件是GridView里面如何显示
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip" android:layout_width="fill_parent">
<ImageView
android:layout_height="wrap_content"
android:id="@+id/ItemImage"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true">
</ImageView>
<TextView
android:layout_width="wrap_content"
android:layout_below="@+id/ItemImage"
android:layout_height="wrap_content"
android:text=""
android:textColor="#FF000000"
android:layout_centerHorizontal="true"
android:id="@+id/ItemText">
</TextView>
</RelativeLayout>
下面是Java代码如何使用GridView
package view;
import java.util.ArrayList;
import java.util.HashMap;
import model.HeroSimpleInfo;
import service.ObtainInfo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import com.zhychneg.dota.R;
public class BrainHeroActivity extends Activity implements OnItemClickListener{
GridView gv=null;
long exitTime=0;
HeroSimpleInfo []heros=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.brainheroall);
gv=(GridView) findViewById(R.id.brainheroall);
ArrayList<HashMap<String,Object>> al=new ArrayList<HashMap<String,Object>>();
heros=ObtainInfo.getBrainHeroSimpleInfo();
for(int i=0;i<heros.length;i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("icon", heros[i].getRes());//添加图像资源的ID
map.put("name", heros[i].getName());//按序号做ItemText
al.add(map);
}
SimpleAdapter sa=new SimpleAdapter(this,al,R.layout.gridview_layout,new String[]{"icon","name"},new int[]{R.id.ItemImage,R.id.ItemText});
gv.setAdapter(sa);
gv.setOnItemClickListener(this);
}
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Intent intent =new Intent(this,AboutHeroActivty.class);
intent.putExtra("HERO", heros[position]);
this.startActivity(intent);
}
}