展会信息港展会大全

Android GridView九宫图
来源:互联网   发布日期:2015-10-03 10:49:43   浏览:2237次  

导读:属性名称描述android:columnWidth设置列的宽度。android:gravity设置此组件中的内容在组件中的位置。可选的值有:top、bottom...

属性名称

描述

android:columnWidth

设置列的宽度。

android:gravity

设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。

android:horizontalSpacing

两列之间的间距。

android:numColumns

设置列数。

android:stretchMode

缩放模式。

android:verticalSpacing

两行之间的间距。

案例一:

1.定义一个布局文件:

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

02 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

03android:layout_width="wrap_content"

04android:layout_height="wrap_content">

05<GridView

06android:id="@+id/gridview_main"

07android:layout_width="wrap_content"

08android:layout_height="wrap_content"

09android:numColumns="auto_fit"

10android:verticalSpacing="1dp"

11android:horizontalSpacing="1dp"

12android:columnWidth="90dp"

13android:stretchMode="columnWidth"

14android:gravity="center"

15>

16</GridView>

17 </LinearLayout>

android:numColumns="auto_fit"--列数设置为自动;

1 android:columnWidth="90dp"--每列的列宽,也就是item的宽度

1 android:verticalSpacing="1dp"--两行之间的边距

1 android:horizontalSpacing="1dp"--两列之间的边距

1 android:stretchMode="columnWidth"--缩放与列宽大小同步

2。接下来定义

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

02 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

03android:layout_width="wrap_content"

04android:layout_height="wrap_content"

05android:orientation="vertical"

06>

07<ImageView

08android:id="@+id/gridview_imageview"

09android:layout_width="wrap_content"

10android:layout_height="wrap_content"

11>

12</ImageView>

13<TextView

14android:id="@+id/gridview_textview"

15android:layout_width="wrap_content"

16android:layout_height="wrap_content"

17android:text="TextView01"

18android:gravity="center"

19/>

20 </LinearLayout>

3.最后定义Java的源代码了,

01 package com.test;

02 import java.util.ArrayList;

03 import java.util.HashMap;

04 import android.app.Activity;

05 import android.os.Bundle;

06 import android.view.View;

07 import android.widget.AdapterView;

08 import android.widget.AdapterView.OnItemClickListener;

09 import android.widget.GridView;

10 import android.widget.SimpleAdapter;

11 public class GridViewDemo extends Activity {

12int [] image={R.drawable.android,R.drawable.blackberry,R.drawable.windowshone,R.drawable.windowshone,R.drawable.blackberry,R.drawable.android,R.drawable.windowshone,R.drawable.ios,R.drawable.blackberry};

13private GridView gridView;

14@Override

15protected void onCreate(Bundle savedInstanceState) {

16// TODO Auto-generated method stub

17super.onCreate(savedInstanceState);

18

19setContentView(R.layout.gridview_main);

20

21gridView = (GridView)findViewById(R.id.gridview_main);

22//生成动态数组,并且转入数据

23ArrayList<HashMap<String, Object>>list=new ArrayList<HashMap<String,Object>>();

24

25for(int i=0;i<9;i++)

26{

27HashMap<String, Object>map = new HashMap<String, Object>();

28

29map.put("ItemImage", image[i]);//添加图像资源的ID

30map.put("itemtext","Amigos_pop-"+String.valueOf(i));

31list.add(map);

32}

33//生成适配器的ImageItem <====> 动态数组的元素,两者一一对应

34SimpleAdapteradapter=new SimpleAdapter(this, //数据来源

35list,R.layout.gridview_item,//XML实现

36new String[]{"ItemImage","itemtext"}, //动态数组与ImageItem对应的子项

37new int[]{R.id.gridview_imageview,R.id.gridview_textview}////ImageItem的XML文件里面的一个ImageView,两个TextView ID

38);

39//添加并且显示

40gridView.setAdapter(adapter);

41//添加消息处理

42gridView.setOnItemClickListener(clickListener);

43}

44//当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件

45privateOnItemClickListenerclickListener=new OnItemClickListener() {

46

47@Override

48public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened

49View arg1,//The view within the AdapterView that was clicked

50int arg2,//The position of the view in the adapter

51long arg3//The row id of the item that was clicked

52)

53{

54

55HashMap<String, Object>item=(HashMap<String, Object>)arg0.getItemAtPosition(arg2);

56

57setTitle((String)item.get("itemtext"));

58}

59};

60 }

4:执行效果:

===============================================================================

案例二:同样的效果:

布局文件使用上面一样的:

定义一个ImageAdapter类,此类继承BaseAdapter如下:

01 package com.test;

02

03 import android.content.Context;

04 import android.view.View;

05 import android.view.ViewGroup;

06 import android.widget.BaseAdapter;

07 import android.widget.GridView;

08 import android.widget.ImageView;

09

10 public class GridViewAdapter extends BaseAdapter {

11

12//定义Context

13private ContextmContext;

14

15//定义整形数组 (图片资源)

16privateint []mimages=

17{

18R.drawable.android,R.drawable.blackberry,R.drawable.windowshone,

19R.drawable.windowshone,R.drawable.blackberry,R.drawable.android,

20R.drawable.windowshone,R.drawable.ios,R.drawable.blackberry

21

22};

23

24public GridViewAdapter(Contextc)

25{

26mContext=c;

27}

28

29//获取图片的个数

30@Override

31public int getCount() {

32// TODO Auto-generated method stub

33return mimages.length;

34}

35// 获取图片在库中的位置www.2cto.com

36@Override

37public Object getItem(int position) {

38// TODO Auto-generated method stub

39return position;

40}

41

42//获取图片ID

43@Override

44public long getItemId(int position) {

45// TODO Auto-generated method stub

46return position;

47}

48

49@Override

50public View getView(int position, View convertView, ViewGroup parent)

51{

52ImageView mimageView;

53if(convertView==null)

54{

55//给Imageview设置资源

56mimageView = new ImageView(mContext);

57//设置布局图片120*120显示

58

59mimageView.setLayoutParams(new GridView.LayoutParams(85, 85));

60

61mimageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

62

63mimageView.setPadding(8, 8, 8, 8);

64}else

65{

66mimageView=(ImageView) convertView;

67}

68mimageView.setImageResource(mimages[position]);

69return mimageView;

70}

71 }

01 package com.test;

02 import java.util.ArrayList;

03 import java.util.HashMap;

04 import android.app.Activity;

05 import android.os.Bundle;

06 import android.view.View;

07 import android.widget.AdapterView;

08 import android.widget.AdapterView.OnItemClickListener;

09 import android.widget.GridView;

10 import android.widget.SimpleAdapter;

11 import android.widget.Toast;

12 public class GridViewDemo_2 extends Activity {

13private GridViewgridView;

14@Override

15protected void onCreate(Bundle savedInstanceState) {

16// TODO Auto-generated method stub

17super.onCreate(savedInstanceState);

18setContentView(R.layout.gridview_main);

19

20gridView = (GridView)findViewById(R.id.gridview_main);

21

22gridView.setAdapter(new GridViewAdapter(this));//调用GridViewAdapter

23

24gridView.setOnItemClickListener(clickListener);

25}

26

27privateOnItemClickListenerclickListener =new OnItemClickListener() {

28

29@Override

30public void onItemClick(AdapterView<?> arg0, View arg1, int position,

31long id) {

32Toast.makeText(GridViewDemo_2.this, ""+position,Toast.LENGTH_SHORT).show();//显示信息;

33

34}

35};

36 }

效果:

作者:amigos_pop

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港