君不见长松卧壑困风霜,时来屹立扶明堂。这篇文章主要讲述安卓项目开发实战--星座展示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"?【安卓项目开发实战--星座展示12宫格】
> < 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
推荐阅读
- Cloud Card是否能干掉App
- [Android开发学习] day07 &amp; day08
- 2017-5-22ApplicationViewStateRepeaterCommand用法
- APP版本升级
- 内置对象ApplicationViewState
- Android多线程分析之五(使用AsyncTask异步下载图像)
- [Android]自己定义带删除输入框
- 关于游戏打包(Android)后,手机上的模型贴图显示模糊问题的解决方案
- Hdu5303Delicious Apples贪心