我有这些ImageViews:
<ImageView
android:id="@+id/ivBgHand"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:scaleType="fitXY" />
<ImageView
android:id="@+id/ivRingPinky"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="matrix" />
我已经设置为ivRingPinky onTouchListener(),但在此之前,我已经应用了以下动画
Animation zoomIn,
zoomIn = AnimationUtils.loadAnimation(this, R.anim.iv_zoom_in_1_finger);
ivBgHand.startAnimation(zoomIn);
ivRingPinky.startAnimation(zoomIn);
XML文件R.anim.iv_zoom_in_1_finger:
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillEnabled="true"
android:fillAfter="true">
<scale
android:duration="750"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="0"
android:pivotY="32%"
android:toXScale="3.5"
android:toYScale="3.5"
android:fillEnabled="true"
android:fillAfter="true">
</scale>
</set>
对于ivRingPinky,我使用drawable中的位图图像创建画布(与ImageView大小相同):
Bitmap bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.RingOnPinky), 23*density, 32*density, false);
Bitmap imageSize = Bitmap.createBitmap(ivRingPinky.getWidth(), ivRingPinky.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(imageSize);
canvas.drawBitmap(bitmap, xCoord, yCoord, null);
ivRingPinky.setImageDrawable(new BitmapDrawable(getResources(), imageSize));
和xCoord,yCoord在这里作为坐标将位图放在手指上的背景ImageView(ivBgHand)上(在这种情况下是小拇指):
float xCoord = 86.399994, yCoord = 908.96;
当我点击onTouch()并将ivRingPinky与位图图像拖到其上并且它快速移动时出现了问题,我理解为什么我做了ScaleAnimation(放大)。但有没有任何解决方案可以让它更慢但仍然流畅?