`
iaiai
  • 浏览: 2204049 次
  • 性别: 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 图片拖动效果(Gallery控件)

    在Android开发中,`Gallery`控件是一种非常实用的组件,尤其适用于实现图片浏览的滑动效果。这个控件提供了一种水平滚动的视图,用户可以通过手势左右拖动来查看图片,类似于手机上的相册应用。下面我们将深入探讨`...

    Android基于Gallery实现网络图片和本地图片循环播放

    在Android开发中,实现一个基于Gallery的网络图片和本地图片循环播放功能,是常见的需求,尤其是在制作各种App的启动页、广告轮播或者个人相册等场景。这个功能的实现涉及到了Android UI组件、网络请求、图片加载库...

    Android_控件运用

    7. **Android 控件之 Gallery** Gallery 是一个水平滚动的视图,可以展示一系列的图片或其他视图,用户可以通过左右滑动来浏览。然而,此控件在 API 21 后已被弃用,建议使用 RecyclerView 或其他替代方案。 8. **...

    031_android UI组件之 Gallery画廊控件

    "Gallery画廊控件"是Android SDK中一个独特的视图组件,它允许用户在一个水平滚动的列表中展示项目,通常用于图片或选择项的浏览。在本教程中,我们将深入探讨Gallery控件的用法、属性以及如何自定义它。 首先,...

    android 带有 动画 效果 的 Gallery 控件

    在Android开发中,`Gallery`控件是一种非常实用的组件,它允许用户通过左右滑动来展示一系列的项目,常用于图片轮播、菜单选择等场景。然而,原生的`Gallery`控件在Android API 17之后就被废弃了,但通过一些技巧和...

    Android gallery控件的用法

    在本篇文章中,我们将深入探讨如何使用Android Gallery控件来实现一个图片浏览的功能,即用户可以在线性展示的十几张图片中进行选择,点击任意图片后,下方将显示所选图片的放大版本。 首先,我们需要在布局文件中...

    android开发,gallery图片切换

    首先,`Gallery`组件是Android SDK早期版本中的一个视图组件,它提供了一个水平滚动的列表,每个子项都可以是一个图片或者其他视图。然而,由于API 17之后被`GridView`和`RecyclerView`等更灵活的组件取代,`Gallery...

    gallery实现图片的展示

    在Android开发中,`Gallery`组件是一个非常实用的控件,用于实现图片或者视图的横向滑动展示。`Gallery`允许用户通过左右滑动来查看位于屏幕两侧的部分内容,从而提供了一种高效的浏览方式。在本教程中,我们将深入...

    Android Gallery控件使用实例

    在Android开发中,Gallery控件是一个非常实用的组件,它允许用户通过左右滑动来浏览一系列的项目,常用于图片轮播、菜单选择等场景。本教程将深入讲解如何在Android应用中使用Gallery控件,并提供一个实际的使用示例...

    Android学习记录使用Gallery实现炫丽的拖动效果

    `Gallery`是Android SDK中一个非常实用的控件,它允许用户水平滑动浏览多个项目,每个项目通常代表一个图片或视图。这个控件特别适用于创建图片浏览器、选项选择器等场景。在`Android 4.0`(API level 14)之后,`...

    UI开发之Android gallery实现图片的循环旋转

    在Android UI开发中,`Gallery`组件是一种可以展示多个图片并允许用户左右滑动选择的控件。在本文中,我们将深入探讨如何实现`Gallery`控件的图片循环旋转功能。 首先,我们要确保正确地初始化`Gallery`。在布局XML...

    Android中gallery图片自动切换Demo

    在Android开发中,`Gallery`组件是用于展示一系列图片或者选项的一个控件,它允许用户通过左右滑动来浏览。然而,`Gallery`在新版本的Android SDK中已经被弃用,取而代之的是`HorizontalScrollView`或者`ViewPager`...

    Android++gallery实现选中放大的效果

    在Android开发中,`Gallery`组件是一个非常有用的控件,它允许用户在水平方向上滚动浏览一系列项目,常用于图片或联系人选择等场景。在本教程中,我们将探讨如何在`Gallery`中实现选中时放大的效果,以提供更好的...

    Android HorizontalScrollView实现横向Gallery

    Gallery是Android早期版本中的一个控件,它提供了一个可滚动的项目列表,用户可以左右滑动来浏览。然而,Gallery已在Android API Level 17中被弃用,开发者被推荐使用其他替代方案,如RecyclerView或...

    Android Gallery的实现

    Gallery组件是Android SDK提供的一种可以展示多个项目(通常为图片)的控件,用户可以通过左右滑动来浏览这些项目。在本实例中,它被用来创建一个简单的图片浏览器,展示了如何有效地使用Gallery和ImageSwitcher。 ...

    android 动态向Gallery中添加图片及倒影&&3D;效果

    在Android开发中,`Gallery`组件是一个非常有趣的控件,它可以用来展示一系列的图片或其它内容,用户可以左右滑动来浏览。本教程将详细讲解如何动态地向`Gallery`中添加图片,并实现倒影与3D翻转效果,使应用的用户...

    一个Demo让你掌握所有的android控件

    这个名为"AndroidBaseDemo"的压缩包很显然是一个包含了各种Android控件示例的项目,旨在帮助开发者全面理解并熟练运用这些控件。下面我们将深入探讨Android中的常见控件及其用法。 一、文本类控件 1. `TextView`:...

    Android Gallery

    **Android Gallery控件详解** Android Gallery控件是Android SDK中提供的一种用于展示一系列项的水平滚动视图。这个控件可以用来创建一个类似图片轮播的效果,用户可以通过左右滑动来浏览不同的项目。在Android早期...

    android gallery图片轮播

    Gallery组件是Android SDK早期版本提供的一种视图控件,它允许用户在一个水平滚动的列表中查看项目,非常适合实现图片轮播功能。然而,在Android 4.0(API级别14)之后,Gallery组件已被弃用,开发者需要寻找其他...

    Gallery浏览图片

    这个组件在早期版本的Android SDK中被广泛使用,它提供了一个高效的、可自定义的方式来展示图片列表。在API 16之后,`Gallery` 被废弃,取而代之的是更灵活的`RecyclerView` 和`HorizontalScrollView`,但理解`...

Global site tag (gtag.js) - Google Analytics