Android规模可绘制,没有质量泄漏

时间:2015-01-14 18:37:04

标签: android

我有一张图片1280x800,然后用

将它放到ImageView中
animationView.setScaleType(ScaleType.FIT_XY);

屏幕上的ImageView具有尺寸256x160

当我将动画应用于此视图时,实际上是

    final AnimatorSet set = new AnimatorSet();
    set.
            play(ObjectAnimator.ofFloat(animationView, View.SCALE_X, 1f, xScale)).
            with(ObjectAnimator.ofFloat(animationView, View.SCALE_Y, 1f, yScale)).
            with(ObjectAnimator.ofFloat(animationView, View.TRANSLATION_X, currentLocation.x, screenSize.x / 2 - imageWidth / 2)).
            with(ObjectAnimator.ofFloat(animationView, View.TRANSLATION_Y, currentLocation.y - actionBarHeight, screenSize.y / 2 - imageHeight / 2)).
            with(ObjectAnimator.ofFloat(actionBarView, View.TRANSLATION_Y, 0, -actionBarHeight));
    set.setDuration(500);
    set.setInterpolator(new DecelerateInterpolator());
    set.start();

xScale和yScale等于两个值的~7。当我在7次放大这个视图时,我对这个视图中的drawable质量有很大的麻烦。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

只需强制您的ImageView在将资源加载到视图中时不缩放资源。使用以下代码设置ImageView的资源:

Options options = new BitmapFactory.Options();
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(getContext().getResources(), resId, options);
mImageView.setImageBitmap(bitmap);

请记住在不再使用ImageView时回收位图