我使用以下代码仅淡入Button
文本。但它为整个Animation animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fade_in);
//register btn listener
m_btn_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
m_btn_register.startAnimation(animationFadeIn);
}
});
提供了fadein。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="2000"
/>
</set>
fade_in.xml
hive (human_resources)> show partitions employees ;
OK
country=IN/state=PU
country=US/state=CA
country=US/state=IL
Time taken: 0.119 seconds, Fetched: 3 row(s)
实现这一目标的正确方法是什么?
答案 0 :(得分:1)
注意:按钮的自定义跨度不适用于棒棒糖及以上。有这个
<Button
android:textAllCaps="false"
我的CustomSpan
public class CustomSpan extends CharacterStyle implements UpdateAppearance {
private int alpha;
public int getAlpha() {
return alpha;
}
public void setAlpha(int alpha) {
this.alpha = alpha;
}
public CustomSpan() {
}
@Override
public void updateDrawState(TextPaint paint) {
paint.setAlpha(alpha);
}
}
自定义属性
private static final Property<CustomSpan, Integer> FADE_INT_PROPERTY
= new Property<CustomSpan, Integer>(Integer.class, "FADE_INT_PROPERTY") {
@Override
public void set(CustomSpan span, Integer value) {
span.setAlpha(value);
}
@Override
public Integer get(CustomSpan object) {
return object.getAlpha();
}
};
然后
String text = button.getText().toString();
final CustomSpan span = new CustomSpan();
final SpannableString spannableString = new SpannableString(text);
int start = 0;
int end = text.length();
spannableString.setSpan(span, start, end, 0);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ObjectAnimator objectAnimator = ObjectAnimator.ofInt(
span, FADE_INT_PROPERTY, 0, 255);
objectAnimator.setEvaluator(new IntEvaluator());
objectAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
button.setText(spannableString);
}
});
objectAnimator.setDuration(10000);
objectAnimator.start();
}
});
答案 1 :(得分:0)
以这种方式更改您的代码
<?xml version="1.0" encoding="UTF-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale android:duration="@android:integer/config_shortAnimTime"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:fromXScale="1.0"
android:toXScale="0.9"
android:fromYScale="1.0"
android:toYScale="0.9"/>
<alpha android:duration="@android:integer/config_shortAnimTime"
android:fromAlpha="1.0"
android:toAlpha="0.7"/>
</set>
还有一件事宣称Animation
是全球性的。
答案 2 :(得分:0)
我认为没有使用动画API 的解决方案,因为它适用于视图,并且不会处理它的内容。
因此,我认为您应该为按钮创建容器视图,并为新容器添加按钮背景。 然后将按钮背景设置为透明。
之后,仅为按钮制作动画。