今天在devdiv论坛里看到有坛友问到九宫格的实现,我把我在项目中用的经验分享一下,九宫格用gridview实现代码如下:代码下载地址:
http://www.devdiv.com/thread-39455-1-1.html
xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.google.android.gx5weather"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:background="@drawable/bg"
>
<ImageView android:id="@+id/ImageView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/top"></ImageView>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"
android:verticalSpacing="30dip"
android:horizontalSpacing="10dip"
android:columnWidth="90dip" //列宽
android:stretchMode="columnWidth"
android:gravity="center"
android:listSelector="@drawable/grid_selector_background"
>
</GridView>
</LinearLayout>
android:numColumns="3" //九宫格的列数 auto_fit时为自动
android:listSelector="@drawable/grid_selector_background" //九宫格的背景,可以找个圆角正方形
public class NineBox extends Activity {
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main_activity);
GridView gridview=(GridView)findViewById(R.id.gridview);
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for(int i=1;i<10;i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
if(i==1){
map.put("ItemImage", R.drawable.g11);
map.put("ItemText", getResources().getString(R.string.gridview1));
}
if(i==2){
map.put("ItemImage", R.drawable.g12);
map.put("ItemText", getResources().getString(R.string.gridview2));
}
if(i==3){
map.put("ItemImage", R.drawable.g13);
map.put("ItemText", getResources().getString(R.string.gridview3));
}
if(i==4){
map.put("ItemImage", R.drawable.g14);
map.put("ItemText", getResources().getString(R.string.gridview4));
}
if(i==5){
map.put("ItemImage", R.drawable.g15);
map.put("ItemText", getResources().getString(R.string.gridview5));
}
if(i==6){
map.put("ItemImage", R.drawable.g16);
map.put("ItemText", getResources().getString(R.string.gridview6));
}
if(i==7){
map.put("ItemImage", R.drawable.g17);
map.put("ItemText", getResources().getString(R.string.gridview7));
}
if(i==8){
map.put("ItemImage", R.drawable.g18);
map.put("ItemText", getResources().getString(R.string.gridview8));
}
if(i==9){
map.put("ItemImage", R.drawable.g19);
map.put("ItemText", getResources().getString(R.string.gridview9));
}
lstImageItem.add(map);
}
SimpleAdapter saImageItems = new SimpleAdapter(this,
lstImageItem,
R.layout.grid_item,
new String[] {"ItemImage","ItemText"},
new int[] {R.id.ItemImage,R.id.ItemText});
gridview.setAdapter(saImageItems);
gridview.setOnItemClickListener(new ItemClickListener());
}
class ItemClickListener implements OnItemClickListener
{
@SuppressWarnings("unchecked")
public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened
View arg1,//The view within the AdapterView that was clicked
int arg2,//The position of the view in the adapter
long arg3//The row id of the item that was clicked
) {
HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);
if(item.get("ItemText").equals(getResources().getString(R.string.gridview1))){
Toast.makeText(NineBox.this, R.string.gridview1, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview2))){
Toast.makeText(NineBox.this, R.string.gridview2, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview3))){
Toast.makeText(NineBox.this, R.string.gridview3, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview4))){
Toast.makeText(NineBox.this, R.string.gridview4, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview5))){
Toast.makeText(NineBox.this, R.string.gridview5, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview6))){
Toast.makeText(NineBox.this, R.string.gridview6, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview7))){
Toast.makeText(NineBox.this, R.string.gridview7, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview8))){
Toast.makeText(NineBox.this, R.string.gridview8, Toast.LENGTH_LONG).show();
}
if(item.get("ItemText").equals(getResources().getString(R.string.gridview9))){
Toast.makeText(NineBox.this, R.string.gridview9, Toast.LENGTH_LONG).show();
}
}
}
}
/**
* @author 张兴业
* 邮箱:xy-zhang@163.com
* qq:363302850
*/
分享到:
相关推荐
UI开发第六篇——仿QQ的滑动TabUI开发第六篇——仿QQ的滑动Tab
UI开发第八篇——ViewFlipper 左右滑动效果UI开发第八篇——ViewFlipper 左右滑动效果
UI开发第九篇——SlidingDrawer 抽屉效果 UI开发第九篇——SlidingDrawer 抽屉效果
Android UI开发第二十一篇——下拉刷新列表实现(pull to refresh) http://blog.csdn.net/xyz_lmn/article/details/8101360
Android UI开发第十六篇——分享一个popuwindow实例 http://blog.csdn.net/xyz_lmn/article/details/6921097
UI开发第七篇之Android gallery实现图片的循环旋转UI开发第七篇之Android gallery实现图片的循环旋转
安卓Android源码——ui开发类库示例源码.zip
建议开发童鞋使用跨平台开发工具——统一开发环境UDE来进行查看、调试、开发哦~~统一开发环境是一款HTML5跨平台一站式应用开发、调试和部署工具, 它支持HTML5跨平台开发,原有Java跨平台插件支持Android、Symbian、...
Android源码——android tabhost --android UI源码.zip
Android UI开发——SlidingDrawer 抽屉效果~~
安卓Android源码——android模仿易信UI布局效果源码.rar
安卓Android源码——android模仿易信UI布局效果源码.zip
Android UI开发专题(一) 之界面设计 近期很多网友对Android用户界面的设计表示很感兴趣,对于Android UI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的。本次专题分10节来讲述,有关OpenGL ES相关的可能将...
Android仿支付宝九宫图效果,UI设计优美,推荐给大家!
第1章 Android简介 1.1 手机操作系统 1.2 Android起源 1.3 Android特征 1.4 Android体系结构 1.4.1 应用层 1.4.2 应用框架层 1.4.3 系统库层 1.4.4 内核层 1.5 小结 练习 第2章 Android开发环境 2.1 ...
Android开发笔记,UI基础编程,PDF文档。
[Packt Publishing] 动态 UI 开发教程 Android Fragments 实现 英文版 [Packt Publishing] Creating Dynamic UI with Android Fragments E Book ☆ 图书概要:☆ Leverage the power of Android fragments to ...
11.2.1 界面设计始终是第一位——实现UI 11.2.2 必备的动力源泉——数据操作和存储 11.2.3 华丽转身——实现多页面跳转 11.2.4 始终为用户做好服务——增加Service 11.2.5 细节决定成败——完善应用细节 11.3 成功就...
如果你想要在一个TextView显示一个被...因为,Android已经给我封装好了——SpannableStringBuilder。下面我就学习Android中对控件的一些封装来封装一个我们自己的TextView(既可在xml中设置也可在Java代码中设置)。