`

Android ImageSwitcher

阅读更多
该例子来自APIDemo


/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.example.android.apis.view;

import com.example.android.apis.R;

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.Gallery.LayoutParams;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher;


public class ImageSwitcher1 extends Activity implements
        AdapterView.OnItemSelectedListener, ViewSwitcher.ViewFactory {

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

        setContentView(R.layout.image_switcher_1);

        mSwitcher = (ImageSwitcher) findViewById(R.id.switcher);
        //提供显示图片的地方
        mSwitcher.setFactory(this);

       //系统的anim中的fade_in.xml
        mSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in));
        //系统的anim中的fade_out.xml
        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);
    }

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

    public void onNothingSelected(AdapterView parent) {
    }

//设置ImgaeSwitcher的为IamgeView的变化并且设置其属性,除此之外可以设置第一次加载的时候ImageSwitcher显示的图片默认第一张
    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;
    }

    private ImageSwitcher mSwitcher;

    public class ImageAdapter extends BaseAdapter {
        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;
        }

        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;
        }

        private Context mContext;

    }

    private Integer[] mThumbIds = {
            R.drawable.sample_thumb_0, R.drawable.sample_thumb_1,
            R.drawable.sample_thumb_2, R.drawable.sample_thumb_3,
            R.drawable.sample_thumb_4, R.drawable.sample_thumb_5,
            R.drawable.sample_thumb_6, R.drawable.sample_thumb_7};

    private Integer[] mImageIds = {
            R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2,
            R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5,
            R.drawable.sample_6, R.drawable.sample_7};

}



//frameworks\base\core\res\res\anim\fade_in.xml
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@anim/accelerate_interpolator" 
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="@android:integer/config_mediumAnimTime" 
/>


//frameworks\base\core\res\res\anim\fade_out.xml
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@anim/decelerate_interpolator"
        android:fromAlpha="0.0" android:toAlpha="1.0"
        android:duration="@android:integer/config_longAnimTime" />



显示效果


总结
TextSwitcher与ImageSwitcher差不多,不过ImageSwitcher规定的view为ImageView,而TextSwitcher为TextView。(这个在public View makeView()这个里面设置)。若是ImageSwitcher则在makeView()里面定义的是IamgeView并且将其返回给IamgeSwitcher, 而TextSwitcher则在makeView里面定义的是TextView并且将其返回给TextSwitcher.


java.lang.Object
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.FrameLayout
   ↳ android.widget.ViewAnimator
   ↳ android.widget.ViewSwitcher
   ↳                    android.widget.TextSwitcher




java.lang.Object
   ↳ android.view.View
   ↳ android.view.ViewGroup
   ↳ android.widget.FrameLayout
   ↳ android.widget.ViewAnimator
   ↳ android.widget.ViewSwitcher
   ↳ android.widget.ImageSwitcher


  • 大小: 86.7 KB
分享到:
评论
3 楼 yehoubin 2010-11-08  
追求幸福 写道
yehoubin 写道
你好,你会不会出现大图片,溢出内存的情况啊?

我没有出现哦!你用的图片很大吧?

你好。我用的图片是100多K的,有三张,刚开始不会,后面多操作几次就会了,你知道原因吗?
2 楼 追求幸福 2010-11-03  
yehoubin 写道
你好,你会不会出现大图片,溢出内存的情况啊?

我没有出现哦!你用的图片很大吧?
1 楼 yehoubin 2010-11-03  
你好,你会不会出现大图片,溢出内存的情况啊?

相关推荐

    android ImageSwitcher实现实例

    在Android开发中,ImageSwitcher是一个非常实用的组件,它主要用于在两个ImageView之间进行平滑切换,常用于实现图片预览或轮播图效果。在本实例中,我们将深入探讨如何在Android应用中使用ImageSwitcher来实现实时...

    android Gallery + ImageSwitcher

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

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

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

    android ImageSwitcher 相册

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

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

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

    ImageSwitcher自动切换

    在Android开发中,ImageSwitcher是一个非常有用的组件,它主要用于在不同的ImageView之间进行平滑的动画切换,通常用于实现图片轮播或者展示效果。在这个"ImageSwitcher自动切换"的项目中,我们将深入探讨如何利用...

    Android之ImageSwitcher的实例详解

    "Android之ImageSwitcher的实例详解" Android之ImageSwitcher是Android系统中一个非常有用的控件,它可以实现图片的切换和显示。下面,我们将详细介绍Android之ImageSwitcher的实例详解。 首先,我们需要了解...

    Android图片切换特效示例:水平百叶窗、垂直百叶窗、马赛克

    其实各种切换特效都能用Android的属性动画来做的,我就如此简单做了一个,目前有3种特效:水平百叶窗、垂直百叶窗和马赛克,其实懂得这个原理做任何特效都是可以的。 为方便各位童鞋看到运行效果,我上传的是完整的...

    GridView+ImageSwitcher实现的图片切换(左滑右滑切换)

    而ImageSwitcher是Android提供的一个视图切换器,适用于在两个ImageView之间平滑地切换图片,常用于实现图片轮播或者类似的效果。在这个场景中,我们将讨论如何结合这两种组件来实现一个图片左右滑动切换的功能。 ...

    安卓图片轮播广告轮播自动滚屏相关-ImageSwitcher.zip

    `ImageSwitcher` 是Android SDK提供的一种用于在两个视图之间切换的控件,非常适合用来实现图片轮播效果。在这个"安卓图片轮播广告轮播自动滚屏相关-ImageSwitcher.zip"压缩包中,包含了可能与实现这一功能相关的...

    Android高级组件ImageSwitcher图像切换器使用方法详解

    图像切换器(ImageSwitcher),用于实现类似于Windows操作系统的“Windows照片查看器”中的上一张、下一张切换图片的功能。在使用ImageSwitcher时,必须实现ViewSwitcher.ViewFactory接口,并通过makeView()方法来...

    Android常用控件ImageSwitcher使用方法详解

    Android ImageSwitcher 控件使用方法详解 Android ImageSwitcher 控件是 Android 平台上的一种常用的控件,用于实现类似于 Windows 操作系统下的“Windows 照片查看器”中的上一张、下一张切换图片的功能。下面将...

    sample of imageSwitcher for android

    【Android中的ImageSwitcher组件详解】 在Android应用开发中,我们常常需要实现图片的动态切换效果,例如在轮播图、广告栏等场景。ImageSwitcher就是为了解决这一需求而设计的一个视图组件,它提供了平滑过渡的动画...

    ImageSwitcherDemo:Android ImageSwitcher 组件示例

    ImageSwitcherDemoAndroid ImageSwitcher component sampleAndroid中的ImageSwitcher控件的使用示例,使用ImageSwitcher控件来实现图片的左右滑动功能

    安卓ImageSwitcher组件实例

    在Android开发中,ImageSwitcher是一个非常实用的UI组件,主要用于在两个ImageView之间进行平滑切换,常用于图片轮播或者加载前后效果对比等场景。本实例将深入探讨如何使用和自定义ImageSwitcher,以及它在实际项目...

    Android基于Imageswitcher的图片播放器

    本项目基于`ImageSwitcher`实现了一个简易的图片播放器,`ImageSwitcher`是Android SDK提供的一种用于在两张图像之间切换的视图,通常用于动画效果,如在应用中的图片轮播。 `ImageSwitcher`继承自`ViewSwitcher`,...

    Android控件ImageSwitcher图片切换器

    在Android开发中,ImageSwitcher是一个非常实用的控件,用于在不同的图片之间进行平滑切换,常用于实现类似轮播图或者加载网络图片的效果。它继承自ViewSwitcher,并且内部包含了两个ImageView,用于显示不同的图片...

    android ImageSwither实现3d图片轮播

    `ImageSwitcher`是Android SDK提供的一种视图切换器,适用于在两个视图之间进行平滑动画切换,非常适合用于图片轮播场景。 首先,我们需要了解`ImageSwitcher`的基本用法。`ImageSwitcher`继承自`ViewSwitcher`,它...

    图片左右切换

    在网页设计中,图片展示是不可或缺的一部分,而动态的图片切换效果可以提升用户体验,增加页面的互动性。本文将深入探讨“图片左右切换”的实现,主要基于jQuery库,结合浏览器兼容性和缩略图功能。...

    Android中使用imageviewswitcher 实现图片切换轮播导航的方法

    在Android开发中,实现图片切换轮播导航是一个常见的需求,特别是在设计用户界面时。`ImageViewSwitcher` 是Android SDK提供的一种方便的控件,用于在不同的图片之间进行平滑的切换,非常适合创建幻灯片或者轮播图的...

Global site tag (gtag.js) - Google Analytics