본문 바로가기
안드로이드

[Android] 이미지 180도 회전

by 코딩히어로 2023. 11. 11.
728x90

안드로이드 앱을 개발하다보면 이미지를 동적으로 조작하거나 변환하는 경우가 종종 있습니다. 특히, 이미지를 회전시키는 작업은 사용자 인터페이스를 다양하게 표현하거나 특정 요구사항을 충족시키기 위해 필요한 경우가 많습니다.

안드로이드 앱에서의 이미지 회전에 초점을 맞추어, ImageView를 활용하여 이미지를 180도 회전시키는 방법에 대해 알아보겠습니다. 

 

이미지 회전을 위한 Matrix 활용
이미지를 회전시키기 위해서는 안드로이드에서 제공하는 Matrix 클래스를 사용합니다. Matrix는 이미지나 그래픽 객체에 변형을 적용하는 데 사용되며, 여기에 회전 변환을 적용하여 이미지를 원하는 각도로 회전시킬 수 있습니다.

 

아래의 예제 코드를 통해 실제로 이미지를 180도 회전시키는 방법을 알아보겠습니다. 코드는 간결하면서도 핵심 원리를 이해하기에 용이하게 작성되었습니다. 코드 내에서는 Matrix를 활용하여 이미지를 회전시키고, 그 결과를 ImageView에 적용하는 방법을 보여줍니다.

 

import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.ImageView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageView = findViewById(R.id.imageView);

        // 이미지 리소스 가져오기 (이미지 리소스에 따라 바뀔 수 있음)
        BitmapDrawable drawable = (BitmapDrawable) getResources().getDrawable(R.drawable.sample_image);
        Bitmap bitmap = drawable.getBitmap();

        // 이미지를 180도 회전시키기
        Bitmap rotatedBitmap = rotateImage(bitmap, 180);

        // 회전된 이미지를 ImageView에 적용
        imageView.setImageBitmap(rotatedBitmap);
    }

    // 이미지를 주어진 각도로 회전시키는 메서드
    private Bitmap rotateImage(Bitmap source, float angle) {
        Matrix matrix = new Matrix();
        matrix.postRotate(angle);
        return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
    }
}

 

이 예제 코드를 통해 안드로이드 앱에서 이미지를 180도 회전시키는 기본적인 방법을 이해할 수 있습니다. 여기에 더해, 여러 각도로의 회전이나 다양한 효과를 적용하기 위해 Matrix 클래스의 다양한 메서드를 활용할 수 있습니다.

728x90
반응형

댓글