使图像在平滑的同时拖动,旋转和缩放更慢

时间:2018-03-12 08:59:09

标签: android canvas scale

我有这些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(放大)。但有没有任何解决方案可以让它更慢但仍然流畅?

0 个答案:

没有答案