app/src/main/java/me/zhanghai/android/douya/ui/CrossfadeText.java
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/*
* Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com>
* All Rights Reserved.
*/
package me.zhanghai.android.douya.ui;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.transitionseverywhere.Transition;
import com.transitionseverywhere.TransitionValues;
public class CrossfadeText extends Transition {
private static final String PROPNAME_TEXT = "android:crossfadeText:text";
public CrossfadeText() {}
public CrossfadeText(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void captureStartValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
@Override
public void captureEndValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
private void captureValues(TransitionValues transitionValues) {
if (!(transitionValues.view instanceof TextView)) {
throw new IllegalArgumentException("Target should be a TextView instead of "
+ transitionValues.view.getClass().getName());
}
TextView view = (TextView) transitionValues.view;
transitionValues.values.put(PROPNAME_TEXT, view.getText());
}
@Override
public Animator createAnimator(ViewGroup sceneRoot, TransitionValues startValues,
TransitionValues endValues) {
TextView view = (TextView) startValues.view;
CharSequence startText = (CharSequence) startValues.values.get(PROPNAME_TEXT);
CharSequence endText = (CharSequence) endValues.values.get(PROPNAME_TEXT);
view.setText(startText);
ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.ALPHA, 1, 0, 1);
AnimatorListener listener = new AnimatorListener(view, endText);
animator.addListener(listener);
animator.addUpdateListener(listener);
后面还有 36 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
