我有一张图片1280x800
,然后用
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质量有很大的麻烦。我该如何解决这个问题?
答案 0 :(得分:1)
只需强制您的ImageView
在将资源加载到视图中时不缩放资源。使用以下代码设置ImageView
的资源:
Options options = new BitmapFactory.Options();
options.inScaled = false;
Bitmap bitmap = BitmapFactory.decodeResource(getContext().getResources(), resId, options);
mImageView.setImageBitmap(bitmap);
请记住在不再使用ImageView
时回收位图