Bạn
muốn tạo hiệu ứng quay như quay đồng xu cho icon hoặc ảnh.
Hãy
khai báo lên trên dòng Override hai dòng sau.
boolean quay;
private
ObjectAnimator mFlipper;
Nhập
thư viện cần dùng vào, copy các dòng sau xuống dưới dòng findViewByid của
imageView.
final Bitmap a =
BitmapFactory.decodeResource(getResources(), R.drawable.cuoi);
final Bitmap b =
BitmapFactory.decodeResource(getResources(), R.drawable.cuoi);
im.setImageBitmap(a);
quay = true;
mFlipper =
ObjectAnimator.ofFloat(im, "rotationX", 0f, 360f);
mFlipper.setDuration(500);
mFlipper.setInterpolator(new
LinearInterpolator());
mFlipper.setRepeatCount(Animation.INFINITE);
mFlipper.addUpdateListener(new
AnimatorUpdateListener() {
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
@SuppressLint("NewApi")
@Override
public void
onAnimationUpdate(ValueAnimator animation) {
if
(animation.getAnimatedFraction() >= 0.25f && quay) {
im.setImageBitmap(b);
quay = false;
}
if
(animation.getAnimatedFraction() >= 0.75f && !quay) {
im.setImageBitmap(a);
quay = true;
}
}
});
Cuối
cùng, nếu muốn ấn nút thì bắt đầu quay, bạn cho lệnh sau vào trong nút bấm nào
đó.
mFlipper.start();
Nếu
muốn ấn vào icon nó mới quay thì copy đoạn sau lên trên ngoặc đóng cuối cùng của
class.
@Override
public boolean
onTouchEvent(MotionEvent event) {
if(event.getAction() ==
MotionEvent.ACTION_DOWN) {
mFlipper.start();
return true;
}
return super.onTouchEvent(event);
}
Nếu muốn chỉ lắc một số lần hữu hạn thì sửa dòng mFlipper.setRepeatCount(Animation.INFINITE);
Nếu muốn icon quay có 2 mặt
như đồng xu thì ở đoạn
final
Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.cuoi);
Thay
cái ảnh mặt kia vào chỗ R.drawable là được.
No comments:
Post a Comment