安卓项目开发实战(2)--星座展示12宫格

好多日子没有写安卓了,今天继续我未完毕的安卓项目。今天主要实现星座展示的12宫格效果。

1、星座图片

找好12星座的图片。參见project代码以下的res/drawable文件夹

2、星座枚举类

建立这个枚举类是非常有必要的。能够使我们 的代码更加清晰,同一时候避免了魔法数字的情况。
枚举类的代码例如以下:
package com.liuc.constatntEnum;

import com.liuc.R;



/**
 * 星座枚举
 * 
 * @author Administrator
 * 
 */
public enum ConstellationEnum {
	// 星座编号(參数说明
	// 0:白羊座、1:金牛座、2:双子座、3:巨蟹座、4:狮子座、
	// 5:处女座、6:天秤座、7:天蝎座、8:射手座、9:魔羯座、
	// 10:水瓶座、11:双鱼座)
	Aries(0, "白羊座",R.drawable.aries), Taurus(1, "金牛座",R.drawable.taurus), Gemini(2, "双子座",R.drawable.gemini), 
	Cancer(3, "巨蟹座",R.drawable.cancer), Leo(4, " 狮子座",R.drawable.leo), Virgo(5, "处女座",R.drawable.virgo), 
	Libra(6, "天秤座",R.drawable.libra), Scorpio(7, "天蝎座",R.drawable.scorpio), Sagittarius(8, "射手座",R.drawable.sagittarius), 
	Capricorn(9, "摩羯座",R.drawable.capricorn), Aquarius(10, "水瓶座",R.drawable.aquarius), Pisces(11,"双鱼座",R.drawable.pisces);

	private ConstellationEnum(int constellationID, String name,int imageID) {
		this.constellationID = constellationID;
		this.name = name;
		this.imageID=imageID;
	}

	private int constellationID;//星座ID
	private String name;//星座名称
	private int imageID;//星座图像资源的ID
	
	
	public int getImageID() {
		return imageID;
	}

	public int getConstellationID() {
		return constellationID;
	}

	public String getName() {
		return name;
	}
	

}

3、主界面12宫格布局

採用GridView作为容器,每一个格子中採用ImageView+TextView的显示方式进行展现
主界面布局:
<?xml version="1.0" encoding="utf-8"?

> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <GridView android:id="@+id/constellation_gridView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="3" android:columnWidth="90dp" android:stretchMode="columnWidth" android:gravity="center"> </GridView> </RelativeLayout>


每一个格子的布局XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
     >
    <ImageView 
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:layout_centerHorizontal="true"
        />
    
    <TextView 
        android:id="@+id/item_text"
        android:layout_width="wrap_content"
    	android:layout_height="wrap_content"
    	android:layout_centerHorizontal="true"
    	android:layout_below="@+id/imageView"
        />

</RelativeLayout>

4、MainActivity初始化布局效果

	/**
	 * 载入主页面12星座布局
	 */
	private void loadTwelveConstellation() {
		GridView gridview = (GridView)this.findViewById(R.id.constellation_gridView);
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        for(ConstellationEnum constellation:ConstellationEnum.values()){
    		Map<String, Object> map = new HashMap<String, Object>();
        	map.put("itemImage", constellation.getImageID());
        	map.put("itemText", constellation.getName());
        	list.add(map);
        }
        SimpleAdapter adapter = new SimpleAdapter(this, list,
				R.layout.itemmenu, new String[] { "itemImage", "itemText" },
				new int[] { R.id.imageView, R.id.item_text });
        //加入Item到网格中
        gridview.setAdapter(adapter);
        //加入点击事件
        gridview.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				
			}
		});
	}
至此一个12宫格的布局就完毕了。

界面效果例如以下所看到的:
本人三部手机測试,5.1寸屏幕能够整屏幕显示,两个4.3屏幕的会出现滚动栏。。。依据屏幕自适应显示会在最后的代码版本号中进行改动

代码地址:http://download.csdn.net/detail/shanhuhau/8065877


posted @ 2017-05-22 21:43  wzjhoutai  阅读(373)  评论(0编辑  收藏  举报