在动画期间视图得到了像素化我只想在我尝试滚动时获得一点倾斜。我正在使用Universal-Image-Library来处理动画。我倾向于在倾斜视图时获得3D外观。
第一张照片就是我想要的。
但下面这张照片,我的内容。下面的视图得到了像素化。
private void rotateLeftFrag(View af) {
if (af != null) {
ObjectAnimator.ofFloat(af, "rotationY", 5, 0)
.setDuration(100).start();
}
}
ObjectAnimator com.nineoldandroids.animation.ObjectAnimator.ofFloat(Object target, String
propertyName, float... values)
有没有决心实现流畅的动画或视图的标题?感谢
更新
float density = getResources().getDisplayMetrics().density;
float scale = getResources().getDisplayMetrics().density;
af.setCameraDistance(density * scale);
ObjectAnimator.ofFloat(af, "rotationY", .5f, 0).setDuration(500).start();
答案 0 :(得分:1)
我认为此视频可以为您提供帮助:
http://www.youtube.com/watch?v=pMcu35-tVls
2点10分,这家伙谈到在旋转矩形的每一侧添加1个额外的透明像素。这应该有助于平滑边缘,因为它们将位于矩形内,而不是边界上。
源代码的链接位于视频下方。
万一你看不到它: http://developer.android.com/shareables/devbytes/CardFlip.zip
要查看的类是CardView,方法bitmapWithBorder:
private static final int ANTIALIAS_BORDER = 1;
/**
* Adding a 1 pixel transparent border around the bitmap can be used to
* anti-alias the image as it rotates.
*/
private BitmapDrawable bitmapWithBorder(BitmapDrawable bitmapDrawable) {
Bitmap bitmapWithBorder = Bitmap.createBitmap(bitmapDrawable.getIntrinsicWidth() +
ANTIALIAS_BORDER * 2, bitmapDrawable.getIntrinsicHeight() + ANTIALIAS_BORDER * 2,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmapWithBorder);
canvas.drawBitmap(bitmapDrawable.getBitmap(), ANTIALIAS_BORDER, ANTIALIAS_BORDER, null);
return new BitmapDrawable(getResources(), bitmapWithBorder);
}
答案 1 :(得分:0)
请尝试关闭硬件渲染
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
mHeaderImage.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}