文档章节

Android UI开发第一篇——android的九宫格式实现

AK_47
 AK_47
发布于 2014/07/09 17:41
字数 551
阅读 55
收藏 0

今天在devdiv论坛里看到有坛友问到九宫格的实现,我把我在项目中用的经验分享一下。


代码地址:http://download.csdn.net/detail/xyz_lmn/5151879


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 xyz_lmn
* 邮箱:xy-zhang@163.com
*
*/

© 著作权归作者所有

AK_47
粉丝 16
博文 533
码字总数 569998
作品 0
嘉定
程序员
私信 提问
在项目中值得学习和利用的Android开源项目分类汇总

http://blog.csdn.net/dianyueneo/article/details/40683285 Android开源项目第一篇——个性化控件(View)篇 包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、Pro......

_FQ_
2014/12/24
20
1
《解析 Google Android DSK-智能手机开发范例手册》.(薛显亮).[PDF]&...

图书作者: 薛显亮 图书编号: 9787113143596 图书格式: PDF 出 版 社: 中国铁道出版社 出版年份: 2012 图书页数: 400-500 [内容简介] 《解析google android sdk——智能手机开发范例手册》基于...

ckook
2013/06/12
153
0
Flutter 即学即用系列博客——09 MethodChannel 实现原生与 Flutter 通信(二)

前言 上一篇我们讲解了如何通过 EventChannel 实现 Android -> Flutter 的通信。 并且也看到了 Flutter 内部 EventChannel 源码也是对 MethodChannel 的封装。 因此这篇我们来说下如何通过 ...

AndroidTraveler
03/23
0
0
Android零基础入门第84节:引入Fragment原来是这么回事

随着大众生活水平的提高,再加上移动互联网的迅速发展,几乎每个人都至少拥有一台搭载Android系统的移动设备。Android设备的多样性给我们带来了很大的便捷,各Android设备拥有不同分辨率和不...

鑫鱻
2017/10/26
46
0
Android四款系统架构工具

Spring for Android   Spring for Android是Spring框架在Android平台上的扩展,旨在简化Android原生应用的开发流程,提高开发者的工作效率。Spring for Android可以帮助开发者简化应用与服...

zhwj407906450
2014/10/21
241
0

没有更多内容

加载失败,请刷新页面

加载更多

spring源码分析6: ApplicationContext的初始化与BeanDefinition的搜集入库

先前几篇都是概念的讲解:回顾下 BeanDefinition 是物料 Bean是成品 BeanFactory是仓库,存储物料与成品 ApplicationContext初始化搜集物料入库,触发生产线,取出物料生产Bean 本文研究spr...

星星之焱
21分钟前
5
0
彻底解决tomcat乱码问题

本地项目请求访问,浏览器中文输出没问题。 部署到服务器上面之后,返回到浏览器的中文就乱码了。 尝试办法: 1.修改tomcat下的conf中的service.xml中的配置信息: 重新启动后,没有效果还是...

诗书易经
36分钟前
5
0
Java开发需要掌握的IDEA插件大全

1、Lombok 解释:这是最基本的插件,2017年就火了,还没用的百度一下吧。 博客链接:Intellij IDEA 安装lombok及使用详解 2、PlantUML integration 解释:各种类之间的关联图,高级开发必备。...

木九天
37分钟前
6
0
python学习10.05:Python range()快速初始化数字列表

实际场景中,经常需要存储一组数字。例如在游戏中,需要跟踪每个角色的位置,还可能需要跟踪玩家的几个最高得分。在数据可视化中,处理的几乎都是由数字(如温度、距离、人口数量、经度和纬度...

太空堡垒185
44分钟前
4
0
java单元测试,PowerMockito模拟方法内new对象

在做单元测试中有时候需要对方法内new出来的对象进行隔离,这是我们需要使用PowerMockito。 添加依赖 <dependency> <groupId>org.powermock</groupId> <artifactId>......

如梦之猿
46分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部