下面列出了android.view.View#setAnimation ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void invalidateAfterUpdate() {
View view = mView.get();
if (view == null) {
return;
}
View parent = (View)view.getParent();
if (parent == null) {
return;
}
view.setAnimation(this);
final RectF after = mAfter;
computeRect(after, view);
after.union(mBefore);
parent.invalidate(
(int) FloatMath.floor(after.left),
(int) FloatMath.floor(after.top),
(int) FloatMath.ceil(after.right),
(int) FloatMath.ceil(after.bottom));
}
private AnimatorProxy(View view)
{
e = 1.0F;
k = 1.0F;
l = 1.0F;
setDuration(0L);
setFillAfter(true);
view.setAnimation(this);
b = new WeakReference(view);
}
/**缩放
* @param view
* @param from 缩放开始比例0-1.0
* @param to 缩放结束比例0-1.0
* @param w
* @param h
*/
public static void setViewScale(View view, float from, float to, int w, int h) {
if (isAnimation) {
ScaleAnimation animation = new ScaleAnimation(from, to, from, to,
w/2, h/2);
animation.setDuration(200);
animation.setFillAfter(true);
view.clearAnimation();
view.setAnimation(animation);
animation = null;
System.gc();
}
}
protected void translatePreICS(View view, float f1)
{
TranslateAnimation translateanimation = new TranslateAnimation(0.0F, 0.0F, f1, f1);
translateanimation.setDuration(0L);
translateanimation.setFillAfter(true);
view.setAnimation(translateanimation);
translateanimation.start();
}
public ViewAnimationSetBuilder add(View view, Animation animation) {
views.add(view);
pendingAnimations.add(animation);
animation.setAnimationListener(this);
view.setAnimation(animation);
return this;
}
@Override
protected void translatePreICS(View view, float offset) {
TranslateAnimation ta = new TranslateAnimation(0, 0, offset, offset);
ta.setDuration(0);
ta.setFillAfter(true);
view.setAnimation(ta);
ta.start();
}
@Override
protected void translatePreICS(View view, float offset) {
TranslateAnimation ta = new TranslateAnimation(0, 0, offset, offset);
ta.setDuration(0);
ta.setFillAfter(true);
view.setAnimation(ta);
ta.start();
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public static void fadeOutAnimation(final View view, int duration) {
Animation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
anim.setDuration(duration);
view.setAnimation(anim);
view.setVisibility(View.GONE);
}
public static void scaleAnimateView(View view) {
ScaleAnimation animation =
new ScaleAnimation(
1.15f, 1, 1.15f, 1,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f);
view.setAnimation(animation);
animation.setDuration(100);
animation.start();
}
public static ApplozicAudioRecordAnimation wrap(View view) {
ApplozicAudioRecordAnimation proxy = PROXIES.get(view);
Animation animation = view.getAnimation();
if (proxy == null || proxy != animation && animation != null) {
proxy = new ApplozicAudioRecordAnimation(view);
PROXIES.put(view, proxy);
} else if (animation == null) {
view.setAnimation(proxy);
}
return proxy;
}
private void getAnimation(View view, int start) {
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setStartOffset(start);
// fadeIn.setDuration(600);
// fadeIn.setRepeatCount(Animation.REVERSE);
fadeIn.setRepeatCount(Animation.INFINITE);
view.setAnimation(fadeIn);
}
protected void translatePreICS(View view, float f)
{
TranslateAnimation translateanimation = new TranslateAnimation(0.0F, 0.0F, f, f);
translateanimation.setDuration(0L);
translateanimation.setFillAfter(true);
view.setAnimation(translateanimation);
translateanimation.start();
}
private AnimatorProxy(View view) {
setDuration(0); //perform transformation immediately
setFillAfter(true); //persist transformation beyond duration
view.setAnimation(this);
mView = new WeakReference<View>(view);
}
private Animation bindItemAnimation(final View child, final boolean isClicked, final long duration) {
Animation animation = createItemDisapperAnimation(duration, isClicked);
child.setAnimation(animation);
return animation;
}
public static AlphaAnimation hideViewByAlpha(final View v) {
AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
alphaAnimation.setDuration(ALPHA_SHORT_DURATION);
v.setAnimation(alphaAnimation);
return alphaAnimation;
}
private AnimatorProxy(View view) {
setDuration(0); //perform transformation immediately
setFillAfter(true); //persist transformation beyond duration
view.setAnimation(this);
mView = new WeakReference<View>(view);
}
private Animation bindItemAnimation(final View child, final boolean isClicked, final long duration) {
Animation animation = createItemDisapperAnimation(duration, isClicked);
child.setAnimation(animation);
return animation;
}
private AnimatorProxy(View view) {
setDuration(0); //perform transformation immediately
setFillAfter(true); //persist transformation beyond duration
view.setAnimation(this);
mView = new WeakReference<View>(view);
}
private AnimatorProxy(View view) {
setDuration(0); // perform transformation immediately
setFillAfter(true); // persist transformation beyond duration
view.setAnimation(this);
mView = new WeakReference<View>(view);
}
/**
* 设置动画
* @param view {@link View}
* @param animation {@link Animation}
* @return {@link View}
*/
public static View setAnimation(final View view, final Animation animation) {
if (view != null) view.setAnimation(animation);
return view;
}