最近の 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 を自分のイメージに変更すると動作します。