`

Android ImageSwitcher和Gallery 综合使用

阅读更多

一个简易的相册

功能描述: 点击按钮进入下一屏,在屏幕上面展示一个大图,在屏幕的下面是一组可以滚动的图片,点击滚动的图片可以显示在上面的控件中。

效果图如下:

 

 

 

 

开发环境:eclipse3.4.2  AndroidSDK2.0 ADT0.9.7

代码:

1.MainActivity 单击按钮时,跳转到 ImageShowActivity

package com.small.photos;

import com.small.photos.R;
import android.widget.*;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {

	OnClickListener listener0 = null;
	Button button0;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// 单击按钮跳转到ImageShowActivity
		listener0 = new OnClickListener() {
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this,
						ImageShowActivity.class);
				startActivity(intent);
			}
		};

		button0 = (Button) findViewById(R.id.image_show_button);
		button0.setOnClickListener(listener0);
	}

}

 2. main.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"
    >
 <Button android:id="@+id/image_show_button"  
            android:text="ImageSwitcher Gallery"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content">  
    </Button>  
</LinearLayout>

 3.image_show.xml 

    ImageSwitcher是用来图片显示那块区域的控件  Gallery 是来控制底下那个图标列表索引用的

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
  
  <ImageSwitcher android:id="@+id/ImageSwitcher01"
     android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:layout_alignParentTop="true"
  	android:layout_alignParentLeft="true">
  	</ImageSwitcher>
  	
  	
   <Gallery 
     android:id="@+id/gallery"
     android:background="#55000000"
     android:layout_width="fill_parent"
     android:layout_height="60dp"
     android:layout_alignParentBottom="true"
     android:layout_alignParentLeft="true"	
     android:gravity="center_vertical"
     android:spacing="16dp" />
  


</RelativeLayout>

 4.ImageShowActivity

 R.drawable.sample_thumb_0 为图片的标识

图片放在res/drawable/目录下  图片名称为sample_thumb_0.gif

package com.small.photos;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.ViewSwitcher.ViewFactory;

public class ImageShowActivity extends Activity implements ViewFactory,
		OnItemSelectedListener {
	/** Called when the activity is first created. */
	ImageSwitcher mSwitcher;
	private Integer[] mThumbIds = { R.drawable.sample_thumb_0,
			R.drawable.sample_thumb_1, R.drawable.sample_0, R.drawable.sample_1 };

	private Integer[] mImageIds = { R.drawable.sample_thumb_0,
			R.drawable.sample_thumb_1, R.drawable.sample_0, R.drawable.sample_1 };

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);

		setContentView(R.layout.image_show);
		setTitle("ImageShowActivity");

		mSwitcher = (ImageSwitcher) findViewById(R.id.ImageSwitcher01);
		// 系统的anim中的fade_in.xml
		mSwitcher.setFactory(this);
		mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
				android.R.anim.fade_in));
		mSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,
				android.R.anim.fade_out));

		Gallery g = (Gallery) findViewById(R.id.gallery);
		// 为缩略图浏览器指定一个适配器
		g.setAdapter(new ImageAdapter(this));
		// 响应 在缩略图列表上选中某个缩略图后的 事件
		g.setOnItemSelectedListener(this);

	}

	@SuppressWarnings("unchecked")
	public void onItemSelected(AdapterView parent, View v, int position, long id) {
		mSwitcher.setImageResource(mImageIds[position]);
	}

	@SuppressWarnings("unchecked")
	public void onNothingSelected(AdapterView parent) {
	}

	@Override
	public View makeView() {
		ImageView i = new ImageView(this);
		i.setBackgroundColor(0xFF000000);
		i.setScaleType(ImageView.ScaleType.FIT_CENTER);
		i.setLayoutParams(new ImageSwitcher.LayoutParams(
				LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
		return i;
	}

	public class ImageAdapter extends BaseAdapter {
		private Context mContext;

		public ImageAdapter(Context c) {
			mContext = c;
		}

		public int getCount() {
			return mThumbIds.length;
		}

		public Object getItem(int position) {
			return position;
		}

		public long getItemId(int position) {
			return position;
		}
        
		//getView方法动态生成一个ImageView,然后利用setLayoutParams、setImageResource、
		//setBackgroundResource分别设定图片大小、图片源文件和图片背景。当图片被显示到当前
		//屏幕的时候,这个函数就会被自动回调来提供要显示的ImageView
		public View getView(int position, View convertView, ViewGroup parent) {
			ImageView i = new ImageView(mContext);

			i.setImageResource(mThumbIds[position]);
			i.setAdjustViewBounds(true);
			i.setLayoutParams(new Gallery.LayoutParams(
					LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
			i.setBackgroundResource(R.drawable.picture_frame);
			return i;
		}

	}

}

  5.AndroidManifest.xml  标识MainActivity为一个程序的开始

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.small.photos"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:label="@string/app_name">
        <activity android:name=".ImageShowActivity"
                  android:label="@string/app_name">
            
        </activity>

    <activity android:name="MainActivity"><intent-filter><action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
</application>


</manifest> 

 

 基本上就是这些了,然后启动吧!

 

分享到:
评论

相关推荐

    android Gallery + ImageSwitcher

    在Android开发中,`Gallery` 和 `ImageSwitcher` 是两个用于展示图像集合和实现图像切换效果的重要组件。它们各自具有独特的优势,结合使用时,可以创建出功能丰富、视觉效果良好的图像浏览界面。 #### Gallery ...

    ImageSwitcher 和 Gallery 的结合使用

    在Android开发中,ImageSwitcher和Gallery是两个非常实用的组件,它们可以帮助开发者实现丰富的图像展示功能。ImageSwitcher主要用于在不同的图片之间进行平滑切换,而Gallery则提供了一个可以左右滑动浏览多个图片...

    Imageswitcher和Gallery实现同步

    在Android开发中,`ImageSwitcher` 和 `Gallery` 是两个非常重要的组件,它们主要用于展示图像,特别是用于创建滑动浏览图片的用户界面。`ImageSwitcher` 是一个视图切换器,通常用来显示两张图片之间的平滑过渡,而...

    Android 学习(20)ImageSwitcher 和 Gallery

    在Android开发中,ImageSwitcher和Gallery是两个非常重要的控件,它们主要用于处理图像展示和交互,为用户提供丰富的视觉体验。这两个控件在构建动态、交互式的用户界面时发挥着关键作用。 ImageSwitcher是一个视图...

    ImageSwitcher和Gallery浏览图片

    - 在此文件中,使用`LinearLayout`作为根布局,垂直排列`ImageSwitcher`和`Gallery`组件。 - 设置`ImageSwitcher`的ID为`@+id/switcher`,并指定宽度和高度填充整个屏幕。 - 设置`Gallery`的ID为`@+id/gallery`,并...

    android ImageSwitcher实现实例

    在本实例中,我们将深入探讨如何在Android应用中使用ImageSwitcher来实现实时更换图片的功能。 首先,ImageSwitcher继承自ViewSwitcher,ViewSwitcher是Android提供的一个可以切换不同视图的容器,它可以在两个子...

    imageswitcher和gallery组合应用案例源码

    在Android开发中,`ImageSwitcher` 和 `Gallery` 是两个非常重要的组件,它们常常被用来实现丰富的图像展示效果。本案例源码是将这两个组件结合使用,为用户提供了在主页上滚动浏览小图片,然后点击小图放大显示在 `...

    imageswitcher和gallery组合,实现超炫壁纸切换功能

    在Android开发中,为了创建一个类似手机壁纸切换的动态效果,开发者经常会选择将`ImageSwitcher`和`Gallery`组件结合使用。`ImageSwitcher`是Android提供的一个用于展示图片并实现平滑过渡效果的视图,而`Gallery`则...

    Gallery和ImageSwitcher同步自动(滚动)播放图片库

    在Android开发中,`Gallery`和`ImageSwitcher`是两个常用的组件,它们分别用于展示图像集合和实现平滑的图像切换效果。本教程将详细讲解如何利用这两个组件实现一个同步自动滚动播放图片库的功能。 首先,让我们...

    自定义ImageSwitcher实现更新图片切换效果

    `ImageSwitcher`是Android提供的一个用于在两张图片之间进行切换的视图,它内部集成了`ViewFlipper`,可以实现过渡动画,让图片切换更加自然流畅。 首先,我们需要了解`ImageSwitcher`的基本用法。`ImageSwitcher`...

    本示例为Gallery 及ImageSwitcher组件用法

    在Android开发中,`Gallery`和`ImageSwitcher`是两个非常重要的UI组件,它们主要用于展示图像并提供用户交互。让我们深入探讨这两个组件的用法和功能。 `Gallery`组件: `Gallery`是一个水平滚动的视图,它可以展示...

    Gallery&ImageSwitcher;实现图片浏览效果

    `Gallery`组件和`ImageSwitcher`是Android SDK提供的一对强大的工具,可以帮助我们轻松构建滑动浏览图片的功能。下面我们将深入探讨这两个组件的工作原理和如何结合使用。 `Gallery`是Android中一个水平方向的滚动...

    通过ImageSwitcher和Gallery,在页面底部实现幻灯片样式浏览的图片,然后选中一张在ImageSwitcher里面放大显示图片

    在Android开发中,创建具有幻灯片效果的图片浏览功能是一项常见的需求,这通常涉及到`ImageSwitcher`和`Gallery`两个组件的结合使用。`ImageSwitcher`用于在两个视图之间切换,通常用于显示大图,而`Gallery`则提供...

    安卓Gallery照片墙画廊图库相关-Android利用Gallery和ImageSwitcher实现在线相册图片预览功能异步加载图片.rar

    本项目“安卓Gallery照片墙画廊图库相关-Android利用Gallery和ImageSwitcher实现在线相册图片预览功能异步加载图片”就是针对这种场景的一个实例。在这个项目中,开发者使用了`Gallery`组件和`ImageSwitcher`来实现...

    android--Gallery 的基本使用

    本篇文章将深入解析`Gallery`组件的基本使用,以及与其相关的`ImageSwitcher`组件。 首先,我们来看`Gallery`组件。它继承自`AbsSpinner`,并提供了水平滚动的布局方式。`Gallery`通常包含一系列的子视图,如`...

    gallery与ImageSwitcher组合使用

    在Android开发中,`Gallery`和`ImageSwitcher`是两个非常实用的UI组件,它们可以结合使用来创建丰富的图像浏览体验。`Gallery`组件是一个水平滚动的视图,可以展示多个项目,而`ImageSwitcher`则是一个用于在两张...

    Android利用Gallery和ImageSwitcher实现在线相册图片预览功能(异步加载图片)

    `Gallery`和`ImageSwitcher`组件是Android SDK提供的一种高效、流畅的图片浏览解决方案,尤其适用于在线相册预览功能。本篇文章将详细介绍如何利用这两个组件实现异步加载图片,以提升用户体验。 首先,`Gallery`...

    android ImageSwitcher 相册

    使用android中的ImageSwitcher 简单的实现了图片浏览的功能

    sample of imageSwitcher for android

    本文将详细介绍Android的ImageSwitcher组件及其使用方法。 **1. ImageSwitcher的基本概念** ImageSwitcher是ViewSwitcher的子类,继承自ViewFlipper,主要用于在两个或多个ImageView之间进行平滑切换。它的主要...

    Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库

    在这个场景下,`Gallery` 和 `ImageSwitcher` 是两个非常关键的组件。下面将详细解释这两个组件以及如何将它们结合起来实现同步自动滚动播放图片库的功能。 `Gallery` 是Android SDK提供的一种特殊的视图,它允许...

Global site tag (gtag.js) - Google Analytics