2013-09-03 2 views
3

애니메이션 도중 뷰가 픽셀 화되었습니다. 스크롤하려고하는 동안 약간의 기울기를 얻고 싶었습니다. 유니버설 이미지 라이브러리를 사용하여 애니메이션을 처리하고 있습니다. 내가보기를 기울이면 3D 모양을 얻고 싶습니다.애니메이션 도중에 뷰가 픽셀 화 됨

첫 번째 사진은 내가 원하는 것입니다. enter image description here

그러나이 사진은 아래에 있습니다. 아래의 보기은 pixilated.

enter image description here

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

그냥 생각했지만'View.setRotationY()'및'View.setCameraDistance()'메소드에 대한 문서를 보았습니까? – Luksprog

+0

'prop-animation'으로 실험을했습니다. 그러나'View.setRotation' diff가 있는지 확실하지 않습니다. 내 코드에서, 아직'setCameraDistance'를 체크하지 않았다. 1 초만주세요. – rahstame

+0

흠,'setCamera'과 혼동 스럽지만'setRotation'은 같습니다. 그 둘을 함께 시험해 주시겠습니까? 'float scale = getResources(). getDisplayMetrics(). 밀도; \t af.setCameraDistance (1280 * scale); ' – rahstame

답변

1

나는이 비디오 당신을 도울 수 있다고 생각 : 2시 10분에서

http://www.youtube.com/watch?v=pMcu35-tVls

의 각면에 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); 
} 
+0

답변에 소스 코드를 포함시킬 수 있습니까? –

+0

출처를 입력하십시오. – rahstame

+0

전체 레이아웃을 사용하여 이미지뿐만 아니라 애니메이션을 적용하고 있습니다. 솔루션 뷰잉에서 픽셀 화하지 않고도 액티비티 뷰 또는 전체 XML에서 어떻게 사용할 수 있습니까? 감사 – rahstame

0

하는 렌더링 하드웨어를 해제 해보세요

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { 
    mHeaderImage.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
} 
관련 문제