마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지뷰 회전 관련 질문드립니다.

0 추천

안녕하세요, 이번에 비행기 무선조종 앱을 만드는데요, 핸드폰의 가속도센서값에 따라 이미지뷰를 회전하는데 회전축의 중심이 정중앙이 아니게 되네요.. 해결 방법 아시는 분 있나요??

 

P.S) 이미지뷰에 회전시킨 이미지를 계속 뿌려주는 방법이 아닌 이미지뷰 자체를 회전시키는 방법을 알고 계신 분 알려주시길 부탁드립니다!

 

 

 

protected void rotateImage_x(int degree){

		ImageView image = (ImageView) findViewById(R.id.x_axis);
        Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.x_axis);
        Matrix mat = new Matrix();
        mat.postRotate(degree);
        
        Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(), mat, true);
        image.setImageBitmap(bMapRotate);

	}
	
	protected void rotateImage_y(int degree){

		ImageView image = (ImageView) findViewById(R.id.y_axis);
        Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.y_axis);
        Matrix mat = new Matrix();
        mat.postRotate(degree);
        
        Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(), mat, true);
        image.setImageBitmap(bMapRotate);

	}

 

 

GOC (180 포인트) 님이 2013년 3월 26일 질문

1개의 답변

0 추천

Matrix.postRotate(float degrees, float px, float py) 함수로 피벗 중심점을 지정할 수 있습니다.

뷰 자체의 회전은 API 11이후로는 View.setRotation(float rotation) 메서드가 있고,

그 외에는 View를 상속받아서 onDraw에서 canvas를 rotate 하는 방법이 있습니다.

http://stackoverflow.com/questions/1930963/rotating-a-view-in-android 참조하세요.

b22n (22,940 포인트) 님이 2013년 3월 26일 답변
...