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>
跳转事件则根据自己的需要设计界面和写出文件
相关文章推荐
- Android应用开发中使用GridView网格布局的代码示例
- Android开发之使用GridView展示图片的方法
- Android开发学习之路-下拉刷新以及GridView的使用
- Android开发中如何使用GridView
- Android开发GridView与CheckBox使用
- Android开发之GridView的使用(解读谷歌官方API)
- Android TV开发经验总结---控件Gridview使用
- 【Android开发那点破事】使用GridView展示图片
- android开发之&使用ViewPager加gridView实现菜单按钮分页滑动(类似QQ表情选择翻页效果)
- android开发游记:ItemTouchHelper 使用RecyclerView打造可拖拽的GridView
- android开发游记:ItemTouchHelper 使用RecyclerView打造可拖拽的GridView
- Android开发之机顶盒上gridview和ScrollView的使用详解
- 【Android 开发】:UI控件之 GridView 网格控件的使用
- Android开发-UI控件:PullToRefresh(ListView GridView下拉刷新)的简单使用
- Android开发:EditText和ListView或GridView同时使用,输入法自动跳出来的 解决办法
- android开发游记:ItemTouchHelper 使用RecyclerView打造可拖拽的GridView
- Android初级开发(四)——补充9、GridView(表格)控件的使用
- 移动开发----Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- Android开发:EditText和ListView或GridView同时使用,输入法自动跳出来的 解决办法
- Android开发中GridView的使用