在按钮动画绘制对象变化(Animating Drawable change in a Button)

2019-09-29 01:35发布

我有一个Button ,有一个BitmapDrawable并在它的文字一行。 不,它重要,但我可绘制是“上面”我的文字这将对应于从顶部的第三个按钮。

提拉使用设置:

BitmapDrawable top = new BitmapDrawable(mContext.getResources(), Bitmap.createScaledBitmap(buttonContent.content, 
            mContext.IMAGE_WIDTH, mContext.IMAGE_HEIGHT, false));

    button.setCompoundDrawablesWithIntrinsicBounds(null, top.getCurrent(), null, null);

一些事件之后,我最初设置的形象改变了, 我想是动画形象的变化 。 我已经有android:animateLayoutChanges=true场在我的布局。

我最初的猜测是创建一个自定义Button -class。 但我不知道是否有另一种方式来解决我的问题?

Answer 1:

您可以动画绘制本身。 一个TransitionDrawable允许层之间的交叉淡入淡出( setCrossFadeEnabled(true) ),你可以像开始转换

((TransitionDrawable) button.getCompoundDrawables()[INDEX]).startTransition(MILLIS);

基于旧的答案Animatable S:请参阅“可绘动画”文档 。 您可以使用复合可绘制该技术也是如此。

开始使用像动画

((Animatable) button.getCompoundDrawables()[INDEX]).start();

或保持到一个参考Animatable时,不设置从XML的绘制。



Answer 2:

“DST”给出的答案是正确的。 但是,如果你正在寻找多个图像之间的交叉淡入淡出的动画,并且不希望使用Animator -班时, TransitionDrawable是不会削减它。 这只是两个图像。

有一个答案几乎类似的职位 。 看看这个!



文章来源: Animating Drawable change in a Button