Android利用ViewFlipper实现屏幕切换动画效果,快速开发平台

<?xml version="1.0" encoding="utf-8"?>

<set

xmlns:android=“http://schemas.android.com/apk/res/android”

<translate

android:fromXDelta=“100%p”

android:toXDelta=“0”

android:duration=“2000”

/>

out_right_left.xml——从右到左出去屏幕

<?xml version="1.0" encoding="utf-8"?>

<set

xmlns:android=“http://schemas.android.com/apk/res/android”

<translate

android:fromXDelta=“0”

android:toXDelta="-100%p"

android:duration=“2000”

/>

4、定义main.xml文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

android:background="#ffffff"

android:orientation=“vertical”

android:padding=“15dp” >

<ViewFlipper

android:id="@+id/flipper"

android:layout_width=“fill_parent”

android:layout_height=“fill_parent” >

<LinearLayo

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

ut

android:id="@+id/layout1"

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

android:orientation=“vertical”>

<Spinner

android:id="@+id/spinner"

android:layout_width=“fill_parent”

android:layout_height=“wrap_content” />

<com.tiantang.testandroid1.MyTextView

android:id="@+id/mytext"

android:layout_width=“fill_parent”

android:layout_height=“wrap_content”

android:clickable=“true”

android:ellipsize=“marquee”

android:focusable=“true”

android:focusableInTouchMode=“true”

android:lines=“1”

android:marqueeRepeatLimit=“marquee_forever”

android:scrollHorizontally=“true”

android:text=“1234567890987654321234556778909876765453234567898765322”

android:textColor="#000000"

android:textSize=“20dp” />

<SlidingDrawer

android:id="@+id/drawer"

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

android:content="@+id/content"

android:handle="@+id/handle" >

<ImageView

android:id="@id/handle"

android:layout_width=“50dp”

android:layout_height=“50dp”

android:src="@drawable/info" />

<ImageView

android:id="@id/content"

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

android:src="@drawable/confirm_bg" />

5、java代码实现:

package com.tiantang.testandroid1;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.view.GestureDetector;

import android.view.GestureDetector.OnGestureListener;

import android.view.LayoutInflater;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.view.ViewGroup;

import android.widget.ArrayAdapter;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

import android.widget.RadioButton;

import android.widget.SlidingDrawer;

import android.widget.Spinner;

import android.widget.TextView;

import android.widget.ViewFlipper;

public class TestAndroid1Activity extends Activity {

/** Called when the activity is first created. */

private Spinner spinner;

private ViewFlipper flipper;

private MyAdapter adapter;

private TextView text;

private SlidingDrawer drawer;

private GestureDetector detector;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

spinner = (Spinner) findViewById(R.id.spinner);

drawer = (SlidingDrawer) findViewById(R.id.drawer);

flipper = (ViewFlipper) findViewById(R.id.flipper);

String[] strs = new String[]{“1234567890987654321234556778909876765453234567898765322”};

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.mytext, strs);

spinner.setAdapter(adapter);

flipper.setLongClickable(true);

flipper.setOnTouchListener(new OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

detector.onTouchEvent(event);

return false;

}

});

detector = new GestureDetector(this, new OnGestureListener(){

@Override

public boolean onDown(MotionEvent e) {

//用户轻触屏幕。(单击)

return true;

}

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

//用户按下屏幕,快速移动后松开(就是在屏幕上滑动)

//e1:第一个ACTION_DOWN事件(手指按下的那一点)

//e2:最后一个ACTION_MOVE事件 (手指松开的那一点)

//velocityX:手指在x轴移动的速度 单位:像素/秒

//velocityY:手指在y轴移动的速度 单位:像素/秒

int x = (int) (e2.getX() - e1.getX());

if(x>0){

flipper.setInAnimation(TestAndroid1Activity.this,R.anim.in_left_right );

flipper.setOutAnimation(TestAndroid1Activity.this,R.anim.out_left_right );

flipper.showPrevious();

}else{

flipper.setInAnimation(TestAndroid1Activity.this,R.anim.in_right_left );

flipper.setOutAnimation(TestAndroid1Activity.this,R.anim.out_right_left );

flipper.showNext();

}

return true;

}

@Override

public void onLongPress(MotionEvent e) {

// TODO Auto-generated method stub

//用户长按屏幕

}

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {

// TODO Auto-generated method stub

return false;//用户按下屏幕并拖动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值