在最近的 Android DevBytes 视频中,它解释了如何使用动画按钮Interpolators
以及View.animate()
使它看起来更卡通的方法。
下面的代码:
public class LiveButton extends Activity {
DecelerateInterpolator sDecelerator = new DecelerateInterpolator();
OvershootInterpolator sOvershooter = new OvershootInterpolator(10f);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_overshoot);
final Button clickMeButton = (Button) findViewById(R.id.clickMe);
clickMeButton.animate().setDuration(200);
clickMeButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (arg1.getAction() == MotionEvent.ACTION_DOWN) {
clickMeButton.animate().setInterpolator(sDecelerator).
scaleX(.7f).scaleY(.7f);
} else if (arg1.getAction() == MotionEvent.ACTION_UP) {
clickMeButton.animate().setInterpolator(sOvershooter).
scaleX(1f).scaleY(1f);
}
return false;
}
});
}
}
因此,在我自己的应用程序中,我尝试使用ImageButton
效果很好的方法来执行此操作。但是每当我将默认按钮背景更改为我自己的图像时,效果就会丢失。
我改变了ImageButton
这样的背景:
view.setBackgroundResource(resID);
我认为这改变了android:src
而不是android:background
所以也许这就是它不起作用的原因?知道我应该在这里做什么吗?
注意:将android:background
内部 XML 更改为我自己的图像确实有效。