-
大小: 76KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-06-04
- 语言: 其他
- 标签: 公告栏 textview TextSwitcher
资源简介
实现了公告栏 文字 3D 翻转动画效果,无限循环播放。具有向上 或者向下翻转特效。可自定义文字大小;
代码片段和文件信息
package com.ss.autotextview;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Camera;
import android.graphics.Matrix;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.Transformation;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher.ViewFactory;
public class AutoTextView extends TextSwitcher implements ViewFactory {
private float mHeight;
private Context mContext;
//mInUpmOutUp分别构成向上翻页的进出动画
private Rotate3dAnimation mInUp;
private Rotate3dAnimation mOutUp;
//mInDownmOutDown分别构成向下翻页的进出动画
private Rotate3dAnimation mInDown;
private Rotate3dAnimation mOutDown;
public AutoTextView(Context context) {
this(context null);
}
public AutoTextView(Context context AttributeSet attrs) {
super(context attrs);
TypedArray a = context.obtainstyledAttributes(attrs R.styleable.auto3d);
mHeight = a.getDimension(R.styleable.auto3d_textSize 36);
a.recycle();
mContext = context;
init();
}
private void init() {
setFactory(this);
//向上翻页的进出动画
mInUp = createAnim(-90 0 true true);//进动画
mOutUp = createAnim(0 90 false true);//出动画
//向下翻页的进出动画
mInDown = createAnim(90 0 true false);
mOutDown = createAnim(0 -90 false false);
//继承TextSwitcher主要用于文件切换,比如 从文字A 切换到 文字 B,
//setInAnimation()后,A将执行inAnimation,
//setOutAnimation()后,B将执行OutAnimation
setInAnimation(mInUp);
setOutAnimation(mOutUp);
}
//动画
private Rotate3dAnimation createAnim(float start float end boolean turnIn boolean turnUp) {
final Rotate3dAnimation rotation = new Rotate3dAnimation(start end turnIn turnUp);
//设置动画持续时间
rotation.setDuration(300);
//fillAfter设为true,则动画执行后,控件将停留在动画结束的状态false 则不停留
rotation.setFillAfter(false);
//设置动画的变化速度 加速
rotation.setInterpolator(new AccelerateInterpolator());
return rotation;
}
//这里返回的TextView,就是我们看到的View
@Override
public View makeView() {
TextView t = new TextView(mContext);
t.setGravity(Gravity.CENTER);
t.setTextSize(mHeight);
t.setSingleLine(true);
return t;
}
//定义动作,向下滚动翻页
public void previous() {
if (getInAnimation() != mInDown) {
setInAnimation(mInDown);
}
if (getOutAnimation() != mOutDown) {
setOutAnimation(mOutDown);
}
}
//定义动作,向上滚动翻页
public void next() {
if (getInAnimation() != mInUp) {
setInAnimation(mInUp);
}
if (getOutAnimation() != mOutUp) {
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-29 14:57 MyApplication\
文件 127 2017-12-29 13:48 MyApplication\.gitignore
目录 0 2018-03-29 14:57 MyApplication\autotextview\
文件 8 2018-03-29 11:27 MyApplication\autotextview\.gitignore
文件 10459 2018-03-29 14:51 MyApplication\autotextview\autotextview.iml
文件 614 2018-03-29 13:47 MyApplication\autotextview\build.gradle
文件 684 2018-03-29 11:27 MyApplication\autotextview\proguard-rules.pro
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\
文件 637 2018-03-29 11:27 MyApplication\autotextview\src\main\AndroidManifest.xm
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\java\
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\java\com\
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\java\com\ss\
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\java\com\ss\autotextview\
文件 5672 2018-03-29 14:44 MyApplication\autotextview\src\main\java\com\ss\autotextview\AutoTextView.java
文件 3479 2018-03-29 14:14 MyApplication\autotextview\src\main\java\com\ss\autotextview\MainActivity.java
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\res\
目录 0 2018-03-29 11:27 MyApplication\autotextview\src\main\res\drawable\
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\res\layout\
文件 1038 2018-03-29 14:56 MyApplication\autotextview\src\main\res\layout\activity_main.xm
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\res\mipmap-xxxhdpi\
文件 10486 2018-03-29 11:27 MyApplication\autotextview\src\main\res\mipmap-xxxhdpi\ic_launcher.png
目录 0 2018-03-29 14:57 MyApplication\autotextview\src\main\res\values\
文件 192 2018-03-29 11:19 MyApplication\autotextview\src\main\res\values\attrs.xm
文件 214 2018-03-29 11:27 MyApplication\autotextview\src\main\res\values\colors.xm
文件 78 2018-03-29 11:27 MyApplication\autotextview\src\main\res\values\strings.xm
文件 394 2018-03-29 11:27 MyApplication\autotextview\src\main\res\values\st
文件 521 2017-12-29 13:48 MyApplication\build.gradle
目录 0 2018-03-29 14:57 MyApplication\gradle\
目录 0 2018-03-29 14:57 MyApplication\gradle\wrapper\
文件 53636 2017-12-29 13:48 MyApplication\gradle\wrapper\gradle-wrapper.jar
............此处省略8个文件信息
评论
共有 条评论