`
jk138
  • 浏览: 153952 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

GridView宫格图的使用

阅读更多

学习内容:1.GridView的使用

               2.AlertDialog显示框的使用

 

 

1.先在res文件夹的drawable三个文件夹下放入图片

 


2.写布局main.xml

 

   <?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/widget0"
    >
<GridView
    android:id="@+id/grid"
    android:layout_width="fill_parent"
    android:padding="30dip"
    android:columnWidth="52px"
    android:layout_height="210px"
    android:numColumns="5"
    />   
<ImageView
    android:id="@+id/ImageView_Big"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="95px"
    android:layout_y="250px"
    />
  
 </AbsoluteLayout>

 3.工程的Activity内容

     package com.chaowen;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemClickListener;

public class gridViewDemo extends Activity implements GridView.OnItemClickListener,GridView.OnItemSelectedListener{
    /** Called when the activity is first created. */
	private GridView my_GridView;
	private ImageAdapter myImageAdapter;
	private ImageView big_ImageView;
	
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        my_GridView = (GridView)findViewById(R.id.grid);
        big_ImageView = (ImageView)findViewById(R.id.ImageView_Big);
        
        myImageAdapter = new ImageAdapter(this);
        //为my_GridView设置一个ImageAdapter
        my_GridView.setAdapter(myImageAdapter);
        
        
        /**
         * GridView的图片Items点击事件处理
         */
        my_GridView.setOnItemClickListener(this);
         
        
    }
    
  
    
    private class ImageAdapter extends BaseAdapter{
         //myContext为上下文
    	private Context myContext;
    	//GridView用来加载图片的ImageView
    	private ImageView the_imageView;
    	
    	//这是图片资源ID的数组
    	private Integer[] mImageIds = {R.drawable.a,R.drawable.b,R.drawable.c,
    			R.drawable.d,R.drawable.e,R.drawable.f,R.drawable.g};
    	
    	//构造方法
    	public ImageAdapter(Context myContext){
    		this.myContext = myContext;
    	}
    	//返回资源ID数组的长度
		@Override
		public int getCount() {
			return mImageIds.length;
		}
        
		//得到Items
		@Override
		public Object getItem(int position) {
			return position;
		}
		//得到Items的ID
		@Override
		public long getItemId(int position) {
			return position;
		}
        
		
		//处理gridview的每个Item
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			//创建一个ImageView
			the_imageView = new ImageView(myContext);
			//设置图像源于资源ID
			the_imageView.setImageResource(mImageIds[position]);
			//使Imageview与边界适应
			the_imageView.setAdjustViewBounds(true);
			//设置背景图片的风格
			the_imageView.setBackgroundResource(android.R.drawable.picture_frame);
			//返回带有多个图片Id的Imageview
			return the_imageView;

			
		}
    	
		//自定义获取对应位置的图片ID
		public Integer getCheckedImageIDPosition(int index){
			return mImageIds[index];
		}
    }


   //点击GridView中图片Items后显示一个AlterDialog提示框
	@Override
	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
	    new AlertDialog.Builder(this)
	   .setTitle("图片浏览")
	    //获得对应的图片并显示
	    .setIcon(myImageAdapter.getCheckedImageIDPosition(arg2))
	    //添加一个按钮
	    .setPositiveButton("返回", new OnClickListener(){

			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
	    	
	    }).show();
		
	}



	@Override
	public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
			long arg3) {
		//GridView中的图片移动焦点选中时,下面的大图ImageView显示相应的大图片
		  big_ImageView.setImageResource(myImageAdapter.getCheckedImageIDPosition(arg2));
		
	}


     //未选中GridView中的图片Items事件处理
	@Override
	public void onNothingSelected(AdapterView<?> arg0) {
		// TODO Auto-generated method stub
		
	}
    
    
    
    
      
}

  

 

 

 
  • 大小: 15.9 KB
  • 大小: 20.1 KB
  • 大小: 31.5 KB
  • 大小: 32.1 KB
分享到:
评论

相关推荐

    Android GridView宫格视图实践项目(资源)

    在本项目“Android GridView宫格视图实践项目”中,我们将深入探讨如何使用GridView来构建具有吸引力的用户界面。 一、GridView简介 GridView是Android SDK提供的一种布局管理器,它可以将数据集中的项以网格的形式...

    Android GridView宫格视图实践

    ### Android GridView 宫格视图实践详解 #### 一、GridView 概述 在Android开发中,`GridView`是一种常见的用户界面组件,用于显示网格形式的数据列表,如相册、商品展示等场景。通过`GridView`可以很容易地实现宫...

    ViewPager+GridView实现宫格横向滑动切换

    `ViewPager`和`GridView`是两个常用组件,它们可以结合使用以实现创新的UI设计。本篇将深入探讨如何利用`ViewPager`和`GridView`来实现宫格横向滑动切换的分页效果。 首先,`ViewPager`是Android SDK中的一个强大的...

    7-1-GridView-9宫格.rar

    总的来说,这个压缩包涵盖了Android开发中使用GridView实现9宫格的基本步骤,包括XML布局、适配器的使用以及可能涉及到的GridLayout概念。通过这些知识点,开发者可以创建出各种自定义的网格界面,满足应用的不同...

    Android 仿微信朋友圈9宫格图片展示&amp;多选图片

    在Android中,我们可以使用GridView控件来实现9宫格布局。GridView允许我们自定义列数,并自动调整每个单元格的大小以适应屏幕。 步骤1:创建 GridView 在布局文件(如activity_main.xml)中添加 GridView,设置列...

    android 9宫格显示

    在Android开发中,9宫格显示通常指的是使用GridView控件来展示一组小图标或图片,形成类似九宫格的布局效果。GridView是Android提供的一种基于网格的布局管理器,它可以将视图按照行列的方式进行排列,常用于创建...

    gridview控件的使用(九宫式的的排列)

    在GridView内加一个按钮 CommandName属性设置为“ExportToExcel” CommandArgument属性的值用“;”做分隔符分为两部分,左边的部分为导出Excel的文件名称,右边的部分为需要隐藏的列的索引(列索引用“,”分开) ...

    绘制9宫格图案密码

    1. **布局设计**:在`res/layout`目录下创建XML布局文件,添加一个`GridView`作为9宫格的基础。设置`GridView`的列数和行数为3,以便创建9个单元格。 ```xml &lt;GridView android:id="@+id/gridView" android:...

    Android仿微信、支付宝钱包宫格界面Demo

    在宫格中加载网络图片时,推荐使用图片加载库,如Glide或Picasso。这些库提供了方便的方法来异步加载图片,避免阻塞UI线程,同时还可以进行图片的缓存和优化。 5. **点击事件处理**: 为每个宫格单元设置点击事件...

    星座12宫格实现

    12宫格是由12个大小相等的正方形组成的网格,每个宫格内可以放置图片、文字或其他元素来表示星座的特性。在Android中,我们可以使用GridView控件来快速搭建这个布局。GridView能够自动处理单元格的排列和滚动,适合...

    Android listview和宫格list切换

    在Android开发中,ListView和GridView(宫格ListView)是两种常用的布局组件,它们都被广泛用于显示大量的数据项。本项目“Android listview和宫格list切换”提供了一种实现这两种视图之间平滑切换的方法,并且包含...

    Android中利用ListView和GridView实现列表视图和网格(图标)视图的相互切换显示

    同时,可以使用ViewHolder模式来减少findViewById的调用,提升列表滑动流畅性。 **步骤7:处理数据刷新** 当数据源发生变化时,记得调用Adapter的`notifyDataSetChanged()`方法,通知视图数据已更新。 以上就是...

    Android实现九宫格(GridView中各项平分空间)的方法

    在Android开发中,实现九宫格布局通常会使用GridView控件,因为它允许开发者将界面划分为网格,并在每个网格中放置不同的组件。本教程主要关注如何在GridView中让每个单元格平分空间,以实现一个自适应不同数量宫格...

    IOS应用源码——宫格视图(支持横屏)LOGO.zip

    在iOS开发中,宫格视图(GridView)是一种常见的用户界面元素,用于展示大量内容,如图片、图标或文字,通常以整齐排列的方格形式展现。本资源"IOS应用源码——宫格视图(支持横屏)LOGO.zip"提供了一个实现此功能的...

    Android之抽屉效果(自定义、GridView、SlidingDrawer结合)案例

    GridView是一种布局管理器,它可以将数据集以网格的形式展示出来,常用于创建宫格效果。要实现GridView,首先需要在XML布局文件中添加一个GridView元素,设置其列数和属性。然后,在Activity或Fragment中,你需要...

    Android参考示例大全.zip

    资源内容十分丰富: AndroidCookbook实用开发技巧集;AndroidSDK中文开发文档;Android操作系统详细目录结构;Android程序员向导;Android的数据存储操作-移动信息仓库;...GridView宫格视图实践;深入浅出Android-教程

    TestGridViewActivity 陌陌好友界面

    - 宫格显示是`GridView`的一大特色,它能让数据以整齐的网格形式排列,适合展示类似图片、图标这类内容。 - 自定义适配器时,可以设置每个单元格的布局(layout),以满足不同类型的数据显示需求,比如单行文本、...

Global site tag (gtag.js) - Google Analytics