首页 > 代码库 > android的ImageSwitcher和TextSwitcher

android的ImageSwitcher和TextSwitcher

ImageSwitcher:

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.imageswitch.MainActivity" >

    <ImageSwitcher
        android:id="@+id/imageSwitcher1_1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
       
		>
    </ImageSwitcher>

</RelativeLayout>
<!--    android:inAnimation="@android:anim/slide_in_left"
        android:outAnimation="@android:anim/slide_out_right"
         -->

MianActivity

package com.example.imageswitch;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.ViewSwitcher.ViewFactory;

public class MainActivity extends Activity implements ViewFactory ,OnTouchListener{
	private ImageSwitcher imageSwitch;
	private int [] images={
			R.drawable.kobe0,
			R.drawable.kobe1,
			R.drawable.kobe3,
			R.drawable.kobe4,
			R.drawable.kobe6,
	};
	private int index; //要显示的图片的下标

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		imageSwitch=(ImageSwitcher) findViewById(R.id.imageSwitcher1_1);
		//设置创建ImageView的工厂
		imageSwitch.setFactory(this);
		//设置触屏事件
		imageSwitch.setOnTouchListener(this);
	}


	
	//ViewFactory工厂接口的方法,通过这个方法,给ImageSwitch组件提供两个
	@Override
	public View makeView() {
		// TODO Auto-generated method stub
		ImageView imageView=new ImageView(this);
		imageView.setImageResource(images[0]);
		return imageView;
	}
	//定义两个x坐标点
	 float startx=0.0F;      //开始位置
	 float endx=0.0F;        //结束位置
	//触屏事件监听方法
	@Override
	public boolean onTouch(View v, MotionEvent event) {
		if(event.getAction()==MotionEvent.ACTION_DOWN){
			startx=event.getX();
			return true;
		}else if(event.getAction()==MotionEvent.ACTION_UP){
			endx=event.getX();
			//判断左滑动
			if(startx-endx>20){
				
				index=(index+1)<(images.length-1)?++index:0;
				imageSwitch.setImageResource(images[index]);
				//在代码中设置动画效果
				imageSwitch.setInAnimation(this, android.R.anim.fade_in);
				imageSwitch.setOutAnimation(this, android.R.anim.fade_out);
			}
			
			//判断右滑动
			if(endx-startx>20){
				index=(index-1)>0?--index:images.length-1;
				imageSwitch.setImageResource(images[index]);
				imageSwitch.setInAnimation(this, android.R.anim.slide_in_left);
				imageSwitch.setOutAnimation(this, android.R.anim.slide_out_right);
			}
		}
		return true;
	}
}

TextSwitcher与ImageSwitcher类似,只需要将ImageSwitcher换成TextSwitcher

设置图片资源修改为设置文本即可

本文出自 “matengbing” 博客,请务必保留此出处http://matengbing.blog.51cto.com/11395502/1882816

android的ImageSwitcher和TextSwitcher