您的位置:首页 > 移动开发 > Android开发

Android开发GridView的使用

2013-05-21 13:14 309 查看




GrideImage.java

package com.hlx.demo;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.GridView;

import android.widget.ImageView;

import android.widget.Toast;

public class GridViewImage extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.grideviewimage);

ImageView imageView = (ImageView) findViewById(R.id.imagegrid);

Bundle bundle = getIntent().getExtras();

imageView.setImageResource(bundle.getInt("image"));

}

}

GridViewActivity.java

package com.hlx.demo;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.ViewGroup;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.GridView;

import android.widget.ImageView;

import android.widget.Toast;

public class GridViewDemoActivity extends Activity {

int[] images = { R.drawable.image1, R.drawable.image2, R.drawable.image3,

R.drawable.image4, R.drawable.image5, R.drawable.image6,

R.drawable.image7, R.drawable.image8, R.drawable.image9

};

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.grideview);

GridView gridView1 = (GridView) findViewById(R.id.gridview01);

gridView1.setAdapter(new ImageAdapter(this));

gridView1.setOnItemClickListener(new OnItemClickListener() {

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

long arg3) {

// TODO Auto-generated method stub

Toast.makeText(GridViewDemoActivity.this,

"你点击了第" + arg2 + "张图片", Toast.LENGTH_SHORT).show();

// 实现跳转,并传递点击位置的图片

Intent intent = new Intent(GridViewDemoActivity.this,

GridViewImage.class);

Bundle bundle = new Bundle();

bundle.putInt("image", images[arg2 % images.length]);

intent.putExtras(bundle);

startActivity(intent);

}

});

}

public class ImageAdapter extends BaseAdapter {

Context myContext;

public ImageAdapter(Context myContext) {

super();

this.myContext = myContext;

}

public int getCount() {

// TODO Auto-generated method stub

return images.length;

}

public Object getItem(int position) {

// TODO Auto-generated method stub

return position;

}

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

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

// TODO Auto-generated method stub

ImageView image;

if (convertView == null) {

image = new ImageView(myContext);

image.setLayoutParams(new GridView.LayoutParams(80, 80));

image.setScaleType(ImageView.ScaleType.FIT_CENTER);

} else {

image = (ImageView) convertView;

}

image.setImageResource(images[position]);

return image;

}

}

}

gridview.xml

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

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

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@android:color/white"

android:padding="10dp"

android:orientation="vertical" >

<GridView

android:id="@+id/gridview01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:columnWidth="90dip"

android:gravity="center"

android:horizontalSpacing="5dip"

android:numColumns="3"

android:padding="10dip"

android:stretchMode="columnWidth"

android:verticalSpacing="5dip" />

</LinearLayout>

gridviewimage.xml

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

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

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<ImageView

android:id="@+id/imagegrid"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center" />

</FrameLayout>

Android Manifest.xml

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

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

package="com.hlx.demo"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk android:minSdkVersion="10" />

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

<activity

android:name=".GridViewDemoActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity

android:name="GridViewImage" />

</application>

</manifest

GridView的事件处理









GridViewMenuACtivity.java


package com.hlx.demo;

import java.util.ArrayList;

import java.util.HashMap;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.Dialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.view.Window;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.GridView;

import android.widget.SimpleAdapter;

import android.widget.Toast;

public class GridViewMenuActivity extends Activity {

int[] images = { R.drawable.btn_youhui,R.drawable.shouchang, R.drawable.xiaoxi,

R.drawable.send, R.drawable.qiye,R.drawable.suggest,R.drawable.call };

String[] array = { "优惠", "收藏", "消息", "发送信息", "企业简介", "用户反馈","一键呼叫" };

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

requestWindowFeature(Window.FEATURE_NO_TITLE);

super.onCreate(savedInstanceState);

setContentView(R.layout.gridview);

GridView gridView = (GridView) findViewById(R.id.grid);

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

for (int i = 0; i < array.length; i++) {

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

map.put("images", images[i]);

map.put("txt", array[i]);

list.add(map);

}

SimpleAdapter simpleAdapter = new SimpleAdapter(this, list,// 数据源

R.layout.gridview_item,// 显示布局

new String[] { "images", "txt" }, new int[] {

R.id.images, R.id.txt });

gridView.setAdapter(simpleAdapter);

gridView.setOnItemClickListener(new ItemClickListener());

}

class ItemClickListener implements OnItemClickListener {

/**

* @param parent

* 发生点击动作的AdapterView

* @param view

* 在AdapterView中被点击的视图(它是由adapter提供的一个视图)。

* @param position

* 视图在adapter中的位置。

* @param rowid

* 被点击元素的行id。

*/

public void onItemClick(AdapterView<?> parent, View view, int position,

long rowid) {

HashMap<String, Object> item = (HashMap<String, Object>) parent

.getItemAtPosition(position);

// 获取数据源的属性值

String txt = (String) item.get("txt");

Object object = item.get("images");

Toast.makeText(GridViewMenuActivity.this, txt,

Toast.LENGTH_LONG).show();

// 根据图片进行相应的跳转

switch (images[position]) {

case R.drawable.btn_youhui:

startActivity(new Intent(GridViewMenuActivity.this,

TobacooWine_opt.class));// 启动另一个Activity

// finish();// 结束此Activity,可回收

break;

case R.drawable.shouchang:

startActivity(new Intent(GridViewMenuActivity.this,

TobacooWine_clt.class));

// finish();

break;

case R.drawable.xiaoxi:

startActivity(new Intent(GridViewMenuActivity.this, TobacooWine_msg.class));

// finish();

break;

case R.drawable.send:

Intent intentsend=new Intent(Intent.ACTION_SENDTO,Uri.parse("smsto:"));

intentsend.putExtra("sms_body", "送好烟送好酒已经成为现代的时尚,你out了吗?");

startActivity(intentsend);

break;

case R.drawable.qiye:

startActivity(new Intent(GridViewMenuActivity.this, TobacooWine_company.class));

// finish();

break;

case R.drawable.suggest:

startActivity(new Intent(GridViewMenuActivity.this, TobacooWine_ufb.class));

// finish();

break;

case R.drawable.call:

Dialog dialog=new AlertDialog.Builder(GridViewMenuActivity.this).

setTitle("是否拨打联系热线:"). //创建标题

setMessage("400-860-0638") //表示对话框中的内容

.setPositiveButton("拨打",new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface dialog, int which)

{

Intent intent=new Intent();

intent.setAction(Intent.ACTION_CALL);

intent.setData(Uri.parse("tel:400-860-0638"));

startActivity(intent);

}

}).setNegativeButton("取消", new DialogInterface.OnClickListener()

{

@Override

public void onClick(DialogInterface dialog, int which)

{

}

}).create();

dialog.show();

}

}

}

}

head.xml

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

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

android:id="@+id/title_rel_all"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@drawable/top_1">"

<Button

android:id="@+id/title_btn_left"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_marginLeft="7dip"

android:background="@drawable/btn_rightbg"

android:gravity="center"

android:paddingBottom="4dip"

android:paddingLeft="10dip"

android:paddingRight="10dip"

android:paddingTop="4dip"

android:text="注销"

android:textColor="#ffffff"

android:textSize="15dip" />

<Button

android:id="@+id/title_btn_center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:background="@drawable/title_center"

android:shadowColor="#ff000000"

android:shadowDx="2"

android:shadowDy="0"

android:shadowRadius="1"

android:textColor="#000000"

android:textSize="16sp"

android:textStyle="bold" />

<Button

android:id="@+id/title_btn_right"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_centerVertical="true"

android:layout_marginRight="7dip"

android:background="@drawable/btn_rightbg"

android:gravity="center"

android:paddingBottom="4dip"

android:paddingLeft="10dip"

android:paddingRight="10dip"

android:paddingTop="4dip"

android:text="分类"

android:textColor="#ffffff"

android:textSize="15dip" />

<!-- android:shadowRadius 阴影的范围 -->

<!-- android:shadowDx 阴影的水平偏移量 -->

</RelativeLayout>

gridview.xml

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

<LinearLayout

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

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="@android:color/white">

<include layout="@layout/head"/>

<GridView

android:id="@+id/grid"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:columnWidth="60dp"

android:gravity="center"

android:padding="0px"

android:horizontalSpacing="20dp"

android:numColumns="auto_fit"

android:stretchMode="columnWidth"

android:verticalSpacing="10dp"

android:layout_marginTop="20dip"

/>

</LinearLayout>

gridview_item.xml

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

<LinearLayout

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

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical"

android:background="#ffffff">

<ImageView

android:id="@+id/images"

android:adjustViewBounds="true"

android:padding="0dip"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

/>

<TextView

android:id="@+id/txt"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textColor="#000000"

android:gravity="center"

android:text="ddd"

/>

</LinearLayout>

跳转事件则根据自己的需要设计界面和写出文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: