`
shinfocom
  • 浏览: 1218624 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
今天在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的滑动Tab

    在UI开发中,仿QQ的滑动Tab是一种常见的设计模式,用于实现应用界面中的多页面切换,用户可以通过滑动Tab来浏览不同的内容区域。在Android平台上,我们可以利用Android SDK提供的组件和方法来实现这一功能。以下是对...

    UI开发第八篇——ViewFlipper 左右滑动效果

    在Android UI开发中,实现界面元素的动态交互是提升用户体验的关键之一。本篇将深入探讨如何利用ViewFlipper组件和GestureDetector类实现左右滑动切换视图的效果,这在主页面或多个内容区域展示的场景中非常常见。 ...

    UI开发第九篇——SlidingDrawer 抽屉效果

    在Android UI开发中,SlidingDrawer是一个非常实用的组件,它允许开发者实现类似抽屉的交互效果,常见于导航栏或者设置菜单等场景。自SDK 1.5版本开始引入,SlidingDrawer提供了水平和垂直两种展开方式,使得用户...

    Android UI开发第二十一篇——下拉刷新列表实现(pull to refresh)

    在Android应用开发中,下拉刷新(Pull To Refresh)功能是一项常见的UI交互设计,它允许用户通过在列表顶部向下拉动来触发数据的刷新操作。这一功能显著提升了用户体验,尤其是在查看实时信息更新时,如新闻、社交...

    智能家居客户端实现——Android Studio版.zip

    总结来说,"智能家居客户端实现——Android Studio版"是一个集成了Android开发、网络通信、设备控制和用户体验设计等多个领域的项目,对于想要涉足智能家居领域的开发者来说,是一个很好的学习和实践平台。...

    Android UI开发第十六篇——分享一个popuwindow实例

    在Android应用开发中,UI设计是至关重要的组成部分,而PopupWindow则是实现丰富交互效果的一种工具。本篇文章将深入探讨如何在Android中使用PopupWindow,并通过一个具体的实例来讲解其用法。 PopupWindow是Android...

    安卓Android源码——android相册系统(用Matrix实现).rar

    这个压缩包“安卓Android源码——android相册系统(用Matrix实现).rar”显然提供了一个使用Matrix类来实现相册功能的示例代码。Matrix是Android SDK中的一个关键类,用于进行2D图像变换,如旋转、缩放、平移等。接...

    智能家居客户端实现——Android Studio版

    智能家居客户端实现——Android Studio版是将现代科技与日常生活相结合,为用户提供便捷、智能的生活环境的项目。基于Android Studio开发的这个客户端,旨在让用户通过智能手机就能远程操控家中的各种智能设备,如...

    安卓Android源码——android相册系统(用Matrix实现).zip

    这个压缩包文件"安卓Android源码——android相册系统(用Matrix实现).zip"包含了一个使用Matrix类来实现的相册系统源码。Matrix是Android图形库中的一个关键类,它允许开发者对图像进行平移、旋转、缩放等变换操作。...

    安卓Android源码——ui开发类库示例源码.zip

    本资源“安卓Android源码——ui开发类库示例源码.zip”提供了丰富的UI开发示例,帮助开发者更好地理解和应用各种UI类库。下面,我们将详细探讨这些知识点。 1. **Android UI组件**:Android SDK包含了多种内置的UI...

    Android九宫图加对话框.rar

    在Android开发中,九宫图通常用于展示一系列小图片或者图标,这种布局方式可以有效地排列和展示内容,常被用于应用的启动页、设置界面或者个性化定制区域。对话框(Dialog)则是Android系统中一种重要的交互元素,它...

    分享Jquery-UI实现Web桌面系统——jWebOS

    建议开发童鞋使用跨平台开发工具——统一开发环境UDE来进行查看、调试、开发哦~~统一开发环境是一款HTML5跨平台一站式应用开发、调试和部署工具, 它支持HTML5跨平台开发,原有Java跨平台插件支持Android、Symbian、...

    第一行代码——Android 阅读计划-信仰.pdf

    在第一部分(第1—4章)中,读者将了解到Android的基本概念、开发环境的搭建以及UI组件的使用。重点内容包括对Android系统的简介、Activity和Fragment的使用、以及常见视图的运用。此外,作者鼓励读者们深入理解并...

    CountTime——Android多久刷新UI

    "CountTime——Android多久刷新UI"这个标题所指的就是如何在Android系统中实现一个能够根据倒计时周期性地刷新UI的机制。这种功能常见于各种计时应用、倒计时提醒、游戏计分等场景。 Android中的UI更新主要通过事件...

    深入浅出Android——Android开发经典教材

    ### 深入浅出Android——Android开发经典教材 #### Android简介 - **定义与历史**:“Android”一词在本书中特指由Google主导开发的一款基于Linux内核的开源移动操作系统。它最初由Andy Rubin等人于2003年创立的...

    Android开发笔记——UI基础编程

    这份"Android开发笔记——UI基础编程"的资料集包含了两部分:新版Android开发教程+笔记七--基础UI编程1.pdf和新版Android开发教程+笔记七--基础UI编程2.pdf,将深入讲解Android应用程序中用户界面的设计与实现。...

    第一行代码——Android(第3版)-思维导图.pdf

    《第一行代码——Android(第3版)》是一本专门为初学者准备的Android开发教程书籍,由郭霖编写。它以通俗易懂的语言和丰富的实例,带领初学者入门Android开发,并且循序渐进地深入到Android平台的各个方面。思维...

    移动应用开发——Android.zip

    这个名为"移动应用开发——Android.zip"的压缩包很可能包含了一系列关于Android应用开发的学习资料,包括教程、代码示例、项目案例等,旨在帮助开发者深入理解Android平台的开发流程和技术要点。 Android应用开发...

    Android开发编程从入门到精通——Android程序员必备

    ### Android开发编程从入门到精通——Android程序员必备 #### 一、什么是Android及发展历程 - **定义**:Android是一种基于Linux内核的操作系统,主要用于移动设备如智能手机和平板电脑等。 - **历史背景**: - ...

    Android源码——android tabhost --android UI源码.zip

    在Android开发中,TabHost是实现标签栏切换界面的一个核心组件。它允许用户在不同的视图之间进行导航,每个视图通常对应一个Activity或者Fragment。TabHost与TabWidget(显示标签)和FrameLayout(用于显示内容)相...

Global site tag (gtag.js) - Google Analytics