Android利用ViewFlipper实现屏幕切换动画效果

63 阅读2分钟

android:toXDelta="0"

android:duration="2000"

/>

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

<set

xmlns:android="schemas.android.com/apk/res/and…"

<translate

android:fromXDelta="0"

android:toXDelta="100%p"

android:duration="2000"

/>

in_right_left.xml——从右到左进入屏幕

<set

xmlns:android="schemas.android.com/apk/res/and…"

<translate

android:fromXDelta="100%p"

android:toXDelta="0"

android:duration="2000"

/>

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

<set

xmlns:android="schemas.android.com/apk/res/and…"

<translate

android:fromXDelta="0"

android:toXDelta="-100%p"

android:duration="2000"

/>

4、定义main.xml文件

<LinearLayout xmlns:android="schemas.android.com/apk/res/and…"

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" >

<LinearLayout

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事件 (手指松开的那一点)

分享读者

作者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。

被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!

我们整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括腾讯,以及字节跳动,阿里,华为,小米,等一线互联网公司主流架构技术。如果你有需要,尽管拿走好了。

腾讯T3架构师学习专题资料

如果你觉得自己学习效率低,缺乏正确的指导,可以点击加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧

群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。