`
isiqi
  • 浏览: 16561447 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

APIDEMO IMAGESWITCHER

阅读更多
/*
* 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
Java代码
  1. <alphaxmlns:android= "http://schemas.android.com/apk/res/android" android:interpolator= "@anim/accelerate_interpolator"
  2. android:fromAlpha="1.0"
  3. android:toAlpha="0.0"
  4. android:duration="@android:integer/config_mediumAnimTime"
  5. />


//frameworks\base\core\res\res\anim\fade_out.xml
Java代码
  1. <alphaxmlns:android= "http://schemas.android.com/apk/res/android"
  2. android:interpolator="@anim/decelerate_interpolator"
  3. android:fromAlpha="0.0" android:toAlpha= "1.0"
  4. 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
分享到:
评论

相关推荐

    Google官方API(Android ApiDemo)

    **Google官方API(Android ApiDemo)** Android ApiDemo是由Google提供的一个官方示例代码库,旨在帮助开发者更好地理解和使用Android SDK中的各种API。这个压缩包包含了大量的预编译的示例应用,覆盖了Android开发...

    android ApiDemo

    android ApiDemo android ApiDemo

    android apidemo.apk

    android apidemo.apk

    Android官方apidemo

    《Android官方ApiDemo详解》 Android官方ApiDemo是Android开发者学习和掌握Android API的重要资源,它包含了Android系统各种API的功能示例,涵盖了从基础到高级的各种功能,为开发者提供了直观的代码实例。这个项目...

    Android 5.0 ApiDemo+可运行源码项目

    【Android 5.0 ApiDemo】是针对Android操作系统版本5.0(代号为Android Lollipop)的一个示例代码库,旨在帮助开发者理解和探索新版本API的功能和特性。这个项目包含了一系列可运行的源码,展示了如何在Android 5.0...

    android中文apidemo详解,适合新手阅读快速上手

    在Android开发中,ApiDemo提供了一系列预设的示例代码,帮助开发者了解如何启动一个新的Android项目。它展示了如何配置AndroidManifest.xml文件,创建主活动(MainActivity),以及如何在布局文件中添加UI元素。 2...

    android apidemo-17

    **Android API Demo 详解** `Android API Demo` 是 Android SDK 中的一个重要组成部分,它位于 `sdk\samples\android-17` 目录下。这个示例程序集为开发者提供了丰富的代码实例,详细展示了 Android 操作系统 API ...

    Android1.5_ApiDemo

    《Android 1.5 ApiDemo深度解析》 在Android的发展历程中,1.5版本(Cupcake)是一个重要的里程碑,它为开发者提供了丰富的API,极大地拓展了Android应用的开发可能性。本文将深入探讨Android 1.5 ApiDemo,帮助...

    android 示例源码 apidemo

    **Android 示例源码 Apidemo 知识点详解** `Android 示例源码 Apidemo` 是一个非常有价值的资源,对于想要深入理解 Android 开发的程序员来说,它提供了一个丰富的实践平台。这个源码集合包含了 Android SDK 中的...

    最新google官方ApiDemo源码

    《Google官方ApiDemo源码详解》 Google官方ApiDemo源码是学习和探索Android平台API功能的宝贵资源,尤其对于开发者来说,这是一个了解和实践最新API用法的实用工具。这个源码包基于Android 4.4(KitKat)版本,意味...

    Android ApiDemo

    《Android ApiDemo详解:史上最全Android示例解析》 Android ApiDemo是Android开发中的一个重要学习资源,它包含了大量的示例代码,涵盖了Android SDK的各种API功能,对于开发者来说,这是一个不可多得的学习和参考...

    学习Android Apidemo从这开始

    在Android开发领域,Apidemo是一个非常重要的学习资源,它包含了大量的示例代码,帮助开发者深入理解Android API的各种功能和用法。标题“学习Android Apidemo从这开始”表明我们将从基础开始,逐步深入地探索这个...

    Google官方API(Android-10 ApiDemo)

    **Google官方API(Android-10 ApiDemo)详解** 在Android开发中,Google官方API扮演着至关重要的角色,它提供了丰富的功能和接口,使得开发者能够构建出功能强大的应用程序。这里我们重点关注的是Android-10版本的...

    android Apidemo

    《Android ApiDemo:深入探索与实践》 在Android开发领域,ApiDemo是一个不可或缺的学习资源,它为开发者提供了大量示例代码,帮助我们更好地理解和运用Android SDK中的各种API。"android samples 导入可以运行查看...

    Google官方API(Android-12 ApiDemo)

    **Android API 深度解析:Google 官方 API(Android-12 ApiDemo)** 在 Android 开发中,Google 官方API扮演着至关重要的角色。这些API为开发者提供了丰富的功能,使得应用程序能够实现从基础操作到复杂交互的一切...

    ApiDemo:Android示例ApiDemo

    【ApiDemo: Android示例ApiDemo】是一个专为Android开发者设计的项目,旨在通过实例化各种API用例,帮助开发者理解和应用Android SDK中的各种API。这个项目不仅包含了丰富的API使用示例,还有详尽的注释,使得学习...

    android 2.3 apidemo

    **Android 2.3 ApiDemo 知识点详解** Android 2.3,又称为Gingerbread(姜饼),是Android操作系统的一个重要版本,它带来了许多性能改进和新功能。ApiDemo是Android SDK中附带的一个示例项目,用于演示Android API...

    APIDemo.rar

    【标题】"APIDemo.rar" 是一个包含.NET WebAPI示例代码的压缩包,它展示了如何实现基本的数据操作功能,如添加、删除、修改和查询,并且支持本地及跨域接口调用。 【描述】中的知识点详解: 1. **.NET WebAPI**:...

    ApiDemo1.6

    《ApiDemo1.6:深入探索API应用的典范》 ApiDemo1.6是一个非常有价值的软件开发学习资源,尤其对于初学者和有经验的开发者来说,它都具有很高的参考价值。"ApiDemo"这个标签表明这是一个专注于API(应用程序接口)...

    下载ApiDemo

    【ApiDemo】是一款针对Android平台的应用程序,它集成了各种API的示例代码,帮助开发者理解和学习如何在实际项目中使用这些API。最新版本的ApiDemo对应的是Android 6.0(API级别23),这是一个重要的里程碑,因为它...

Global site tag (gtag.js) - Google Analytics