`
iaiai
  • 浏览: 2146564 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android控件之Gallery实现图片列表

 
阅读更多
先来看下运行效果:


费话不多说,直接看代码...........


values/attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
	<declare-styleable name="Gallery">
		<attr name="android:galleryItemBackground" />
	</declare-styleable>
</resources>


layout/img.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:orientation="vertical" android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<Gallery android:id="@+id/galley" android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:layout_x="12px"
		android:layout_y="106px" />
	<ImageView android:id="@+id/image" android:layout_width="fill_parent"
		android:layout_height="wrap_content" />
</LinearLayout>


ImageAdapter.java:
import java.util.List;

import org.mdx.R;

import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;

/**
 * 
 * <p>
 * Title: ImageAdapter.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-7-18
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class ImageAdapter extends BaseAdapter {

	int mGalleryItemBacjground;
	private Context mContext;
	private List<Integer> list;

	public ImageAdapter(Context c, List<Integer> li) {
		mContext = c;
		list = li;
		TypedArray a = c.obtainStyledAttributes(R.styleable.Gallery);
		mGalleryItemBacjground = a.getResourceId(
				R.styleable.Gallery_android_galleryItemBackground, 0);
		a.recycle();
	}

	public int getCount() {
		return list.size();
	}

	public Object getItem(int position) {
		return list.get(position%list.size()).intValue();
	}

	public long getItemId(int arg0) {
		// TODO Auto-generated method stub
		return arg0;
	}

	public View getView(int position, View arg1, ViewGroup arg2) {
		// TODO Auto-generated method stub
		ImageView i = new ImageView(mContext);
		Bitmap bm = BitmapFactory.decodeResource(mContext.getResources(), list
				.get(position%list.size()).intValue());
		i.setImageBitmap(bm);
		i.setScaleType(ImageView.ScaleType.FIT_XY);
		i.setLayoutParams(new Gallery.LayoutParams(136, 88));
		i.setBackgroundResource(mGalleryItemBacjground);
		return i;
	}

}



ImgActivity.java:
import java.util.ArrayList;
import java.util.List;

import org.mdx.R;
import org.mdx.core.activity.adapter.ImageAdapter;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;
import android.widget.ImageView;

/**
 * 
 * <p>
 * Title: ImgActivity.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-7-18
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class ImgActivity extends Activity {
	private ImageView imageView;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.img);

		imageView = (ImageView) findViewById(R.id.image);
		final Gallery g = (Gallery) findViewById(R.id.galley);
		final ImageAdapter imageAdapter = new ImageAdapter(this, getImages());
		g.setAdapter(imageAdapter);

		g.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				imageView.setImageResource(((Integer) imageAdapter
						.getItem(position)).intValue());
			}
		});
		g.setOnItemSelectedListener(new OnItemSelectedListener() {
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				imageView.setImageResource(((Integer) imageAdapter
						.getItem(position)).intValue());
			}

			public void onNothingSelected(AdapterView<?> parent) {
				imageView.setImageResource(((Integer) imageAdapter.getItem(g
						.getSelectedItemPosition())).intValue());
			}
		});
	}

	private List<Integer> getImages() {
		List<Integer> list = new ArrayList<Integer>();
		list.add(new Integer(R.drawable.a));
		list.add(new Integer(R.drawable.b));
		list.add(new Integer(R.drawable.c));
		list.add(new Integer(R.drawable.d));
		list.add(new Integer(R.drawable.e));
		list.add(new Integer(R.drawable.f));
		list.add(new Integer(R.drawable.g));
		return list;
	}
}


再放几张136*88的图片就可以了
  • 大小: 20.6 KB
分享到:
评论

相关推荐

    android开发入门与实战(下)

    7.3.17 切换图片(ImageSwitcher&Gallery) 7.3.18 网格视图(GridView)介绍与应用 7.3.19 标签(Tab)介绍与应用 7.4 友好的菜单——menu介绍与实例 7.4.1 实例操作演示 7.4.2 实例编程实现 7.5 Android应用的灵魂——...

    Android-app.rar

    Android 使用Gallery_tabhost实现标签效果图源码 Android 例子源码根据CPU使用时间计算程序电量使用 Android 医院介绍电子书籍源码 android 图片涂鸦 Android 基于局域网的P2P聊天系统 Android 天气预报 Android ...

    Android程序技术:画廊视图.pptx

    画廊Gallery能够水平方向显示内容,并且可用手指直接拖动图片移动,一般用来浏览图片,被选中的选项位于中间,并且可用影响事件显示信息。在使用画廊视图时,首先在屏幕上添加Gallery组件。使用画廊视图,也需要使用...

    android开发揭秘PDF

    4.2.15 拖动效果(Gallery) 4.2.16 切换图片(hmgeSwilcher) 4.2.17 网格视图(GridView) 4.2.18 卷轴视图(ScrollView) 4.2.19 进度条(ProgressBar) 4.2.20 拖动条(SeekBar) 4.2.21 状态栏提示(Notification、...

    老罗android视频开发源码和ppt经典

    6.24 Gallery画廊控件 6.25 Spinner下拉列表控件 6.26 ImageSwitcher图片切换控件 6.27 GridView网格控件 6.28 TabHost卡片的使用 6.29 ViewStub惰性装载控件 6.30 ViewPager多页面滑动效果一 6.31 ViewPager多页面...

    控件与适配器

    Android控件与适配器 ListView,列表与自定义适配器 Gallery,画廊与自定义适配器 (其中的按钮可将当前显示的图片设置为壁纸) AutoCompleteTextView,自动提示与自定义适配器

    Android开发案例驱动教程 配套代码

    6.1 列表类控件 83 6.1.1 Adapter概念 83 6.1.2 AutoComplete 84 6.1.3 Spinner 87 6.1.4 ListView 90 6.1.5 GridView 96 6.1.6 Gallery 99 6.2 Toast 103 6.2.1 文本类型 103 6.2.2 图片类型 104 6.2.3 ...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    Android应用开发揭秘pdf高清版

    16.3.3 Android.mk实现 16.3.4 Application.mk实现 16.3.5 编译C\C++代码 16.4 AndroidNDK中使用0penGL 16.5小结 第17章 Android脚本环境 17.1 Android脚本环境简介 17.2 Android脚本环境安装 17.3如何编写Android...

    《Android应用开发揭秘》源码

     4.2.15 拖动效果(Gallery)  4.2.16 切换图片(hmgeSwilcher)  4.2.17 网格视图(GridView)  4.2.18 卷轴视图(ScrollView)  4.2.19 进度条(ProgressBar)  4.2.20 拖动条(SeekBar)  4.2.21 状态栏提示...

    android开发实例大全_王东华

    实例039: 自定义Android控件实现单选 按钮 100 实例040: 使用自定义控件在屏幕中绘 制一条虚线 104 实例041: 在屏幕中实现手风琴效果 106 第3章 自动化服务实例集锦 109 实例042: 自动获取手机屏幕的分辨率 ...

    android开发demo集合

    41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    5.13 置换手机背景图——Gallery与setWallpaper整合实现 5.14 撷取手机现存桌面——getWallpaper与setImageDrawable 5.15 文件资源管理器再进化——JavaI/O修改文件名及删除 5.16 取得目前File与Cache的路径——...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    5.13 置换手机背景图——Gallery与setWallpaper整合实现 5.14 撷取手机现存桌面——getWallpaper与setImageDrawable 5.15 文件资源管理器再进化——JavaI/O修改文件名及删除 5.16 取得目前File与Cache的路径——...

    《Google Android SDK开发范例大全(第3版)》.pdf

     全书共分11章,主要以范例集的方式来讲述android的知识点,详细介绍了开发android的人机交互界面、android常用的开发控件、android手机收发短信等通信服务、开发android手机的自动服务功能和娱乐多媒体功能以及...

    Google Android SDK开发范例大全(第3版) 1/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    5.13 置换手机背景图——Gallery与setWallpaper整合实现 5.14 撷取手机现存桌面——getWallpaper与setImageDrawable 5.15 文件资源管理器再进化——JavaI/O修改文件名及删除 5.16 取得目前File与Cache的路径——...

Global site tag (gtag.js) - Google Analytics