2019独角兽企业重金招聘Python工程师标准>>>

今天在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
*
*/

转载于:https://my.oschina.net/201003674/blog/288951

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

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

    今天在devdiv论坛里看到有坛友问到九宫格的实现,我把我在项目中用的经验分享一下,九宫格用gridview实现代码如下:代码下载地址:http://www.devdiv.com/thread-394 ...

  2. Android UI开发第四十一篇——墨迹天气3.0引导界面及动画实现

    周末升级了墨迹天气,看着引导界面做的不错,模仿一下,可能与原作者的代码实现不一样,但是实现的效果还是差不多的.先分享一篇以前的文章,android动画的基础知识,<Android UI开发第十二 ...

  3. Android studio 开发第一篇 APP项目创建

    Android studio开发 APP项目创建 打开Android studio 依次点击file->new->new project 进入create new project界面,选择 ...

  4. android系列:第一篇 android开发常用命令集合,代码目录简介

    下面整理了android开发常用命令集合如adb命令,adb over wifi,jgrep等代码搜索命令,编译环境变量配置,lunch平台选择,mm模块编译,godir代码路径跳转,log.v()等 ...

  5. Android UI开发第二篇——多级列表(ExpandableListView)

    开发中很多地方使用到了多级列表,android可以使用ExpandableListView很好的实现,下面模仿了手机qq的实现,见下图. 多级列表使用了ExpandableListView,自定义了A ...

  6. android 串口开发第二篇:利用jni实现android和串口通信

    一:串口通信简介 由于串口开发涉及到jni,所以开发环境需要支持ndk开发,如果未配置ndk配置的朋友,或者对jni不熟悉的朋友,请查看上一篇文章,android 串口开发第一篇:搭建ndk开发环境以 ...

  7. Android UI开发第二十五篇——分享一篇自定义的 Action Bar

    Action Bar是android3.0以后才引入的,主要是替代3.0以前的menu和tittle bar.在3.0之前是不能使用Action Bar功能的.这里引入了自定义的Action Bar, ...

  8. Android UI开发第三十篇——使用Fragment构建灵活的桌面

    http://www.lupaworld.com/article-222973-1.html 当我们设计应用程序时,希望能够尽最大限度的适配各种设备,包括4寸屏.7寸屏. 10寸屏等等,Android ...

  9. Android UI开发第三十九篇——Tab界面实现汇总及比较

    Tab布局是iOS的经典布局,Android应用中也有大量应用,前面也写过Android中TAb的实现,<Android UI开发第十八篇--ActivityGroup实现tab功能>.这 ...

最新文章

  1. 367. Valid Perfect Square
  2. UVA1025 城市里的间谍 A Spy in the Metro(2003 ICPC world final)(DAG上DP)
  3. 浏览器ERR_PROXY_CONNECTION_FAILED解决方法
  4. the enigma x64_【一期】什么是x64、x86,它们有什么区别?
  5. tp5视图里写原生php,tp5中使用原生sql查询总结
  6. 基于 Blazui 的 Blazor 后台管理模板 BlazAdmin 正式尝鲜
  7. CF722D. Generating Sets[贪心 STL]
  8. VSCode使用VIM复制内容到系统剪切板
  9. 显示器驱动程序已停止响应 并且已成功恢复
  10. 精译丨贝莱德掌舵人拉里 · 芬克:华尔街是什么
  11. 修改删除idea快捷键
  12. SLA/LCD/DLP光固化3D打印原理分析!
  13. 课外读物积累-----如何提高英文的科研写作能力(摘自施一公寄语)
  14. Android音视频开发:AudioRecord录制音频
  15. java 计算百分数问题
  16. Matlab机器人的仿真(八):绘制机器人运动轨迹(复现)
  17. 【通俗易懂】什么是机器学习
  18. 百度地图点击marker换图标的两种方式
  19. 短信平台API接口demo示例-Node/SMS/Send
  20. aws php 上传文件 限制大小_php如何实现文件上传下载-PHP问题

热门文章

  1. Spring Boot 自动配置之条件注解
  2. 用外观判断论文好坏?这位顶会领域主席的论文被自己的AI审稿系统拒绝了
  3. 树莓派的Perl 遨游之旅
  4. linux   vim配置,打造ide
  5. 项目托管至GitHub上
  6. 【转】首先为人编写程序,其次才是计算机
  7. 静态链接库和动态链接库(转)
  8. golang切片传参
  9. getpeername()函数
  10. IAR中断定义#pragma vector = P0INT_VECTOR __interrupt void P0_ISR(void)啥意思?