Java 使用ViewAnimator(如ScaleAnimation)时,如何在ImageView中设置全分辨率图像的动画?
目前,我正在将图像导入ImageView,并以全设备宽度和wrapContent高度显示它。当我点击图像时,我使用缩放图像放大它,一切都很好。问题是我正在缩放缓存的位图,该位图被缩小以适应设备宽度 例如,当一个1080p图像添加到我的720p设备上时,肯定是因为我单击放大时,设备正在放大我的1080p图像的缓存720p位图版本。我特意下载了一个更高分辨率的图像,这样它就可以进行缩放,但我不知道如何强制它使用原始图像而不是缓存版本 这里是我处理缩放的地方:Java 使用ViewAnimator(如ScaleAnimation)时,如何在ImageView中设置全分辨率图像的动画?,java,android,imageview,Java,Android,Imageview,目前,我正在将图像导入ImageView,并以全设备宽度和wrapContent高度显示它。当我点击图像时,我使用缩放图像放大它,一切都很好。问题是我正在缩放缓存的位图,该位图被缩小以适应设备宽度 例如,当一个1080p图像添加到我的720p设备上时,肯定是因为我单击放大时,设备正在放大我的1080p图像的缓存720p位图版本。我特意下载了一个更高分辨率的图像,这样它就可以进行缩放,但我不知道如何强制它使用原始图像而不是缓存版本 这里是我处理缩放的地方: private void zoomIn(
private void zoomIn(View v, int time){
// initialize animations
Animation scaleAnimation;
imageCenter = new Point(imageView.getWidth() / 2, imageView.getHeight() / 2);
// build animations
scaleAnimation = new ScaleAnimation(scaleMin,scaleMax,scaleMin,scaleMax, imageCenter.x, imageCenter.y);
scaleAnimation.setRepeatCount(0);
// build animation set
AnimationSet s = new AnimationSet(true);
s.addAnimation(scaleAnimation);
s.setDuration(time);
s.setFillAfter(true);
s.setInterpolator(interpolator);
v.startAnimation(s);
}
我正在考虑改用ObjectAnimator,但这似乎有点不必要。当我制作动画时,肯定有办法告诉它使用全分辨率图像重画
提前谢谢 我意识到这是因为我通过毕加索调整了图像的大小。当我调整好尺寸后,它就没有问题了。我以为GPU缓存了一个最大可见分辨率的位图,所以在720p显示器上1080p图像会被压缩到720p,但我错了。完整的1080p图像,即使缩小了,也具有完整版本的所有细节。使用scaleAnimation=new ScaleAnimationscaleMin、scaleMax、scaleMin、scaleMax、Animation.RELATIVE_TO_SELF、float 0.5、Animation.RELATIVE_TO_SELF、float 0.5;谢谢,但我得到了相同的结果:缓存的720p图像被放大,而不是原始的1080p图像:/