코딩 팁

안드로이드 리스트뷰 이미지뷰 3D 변환 예제

코딩 기록 vicddory 2017. 8. 9. 07:30

안드로이드 리스트뷰 이미지뷰 3D 변환 예제


Project 소스 파일 - Swap3D.zip


출처는 Sravan이란 분의 블로그였는데 사라지고 없네요.

간단하게, 안드로이드 리스트뷰와 안드로이드 이미지뷰의 XY 축을 90도로 회전시키는 원리를 이용했다고 하네요.


아래는 주요 소스 코드입니다.


안드로이드 리스트뷰[안드로이드 리스트뷰 이미지뷰 3D 변환 예제]


이미지 회전 소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 protected void applyTransformation(float interpolatedTime, Transformation t) {
    final float fromDegrees = mFromDegrees;
    float degrees = fromDegrees + ((mToDegrees - fromDegrees) * interpolatedTime);
 
    final float centerX = mCenterX;
    final float centerY = mCenterY;
    final Camera camera = mCamera;
 
    final Matrix matrix = t.getMatrix();
 
    camera.save();
 
    if (mReverse) {
        camera.translate(0.0f, 0.0f, mDepthZ * interpolatedTime);
    } else {
        camera.translate(0.0f, 0.0f, mDepthZ * (1.0f - interpolatedTime));
    }
 
    camera.rotateY(degrees);
    camera.getMatrix(matrix);
    camera.restore();
 
    matrix.preTranslate(-centerX, -centerY);
    matrix.postTranslate(centerX, centerY);
}
cs


안드로이드 이미지뷰[안드로이드 리스트뷰 이미지뷰 3D 변환 예제]


3D 전환 소스


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void run() {
    final float centerX = mContainer.getWidth() / 2.0f;
    final float centerY = mContainer.getHeight() / 2.0f;
    Rotate rotation;
            
    if (mPosition > -1) {
        mPhotosList.setVisibility(View.GONE);
        mImageView.setVisibility(View.VISIBLE);
        mImageView.requestFocus();
 
        rotation = new Rotate(90180, centerX, centerY, 310.0f, false);
    } else {
        mImageView.setVisibility(View.GONE);
        mPhotosList.setVisibility(View.VISIBLE);
        mPhotosList.requestFocus();
 
        rotation = new Rotate(900, centerX, centerY, 310.0f, false);
    }
 
        rotation.setDuration(5000);
        rotation.setFillAfter(true);
        rotation.setInterpolator(new DecelerateInterpolator());
 
        mContainer.startAnimation(rotation);
}
cs


안드로이드 리스트뷰 3D[안드로이드 리스트뷰 이미지뷰 3D 변환 예제]


안드로이드 리스트뷰 이미지뷰 3D 변환 예제

반응형
그리드형(광고전용)