[android] 안드로이드 리소스 SVG 이미지 처리

안드로이드 앱을 개발할 때 이미지는 중요한 부분을 차지합니다. 안드로이드 앱의 디스플레이 크기와 해상도가 다양하므로, 다양한 크기에 대응하는 유연한 이미지 처리 방법이 필요합니다. SVG 이미지는 XML 형식으로 정의되어 확대 또는 축소시에도 깨지지 않고 선명하게 표시될 수 있는 이점을 가지고 있습니다. 이번 글에서는 안드로이드에서 SVG 이미지를 리소스로 사용하고 처리하는 방법에 대해 알아보겠습니다.

SVG 이미지를 안드로이드 리소스로 추가하기

가장 먼저 해야 할 일은 SVG 이미지를 안드로이드 프로젝트의 리소스로 추가하는 것입니다. 안드로이드 스튜디오에서 res/drawable 디렉토리에 SVG 이미지를 추가하면 됩니다.

res/
   drawable/
      ic_launcher_background.xml
      my_svg_image.svg

SVG 이미지 처리 및 표시

SVG 이미지는 안드로이드에서 기본적으로 지원되지 않기 때문에, SVG 이미지를 처리하고 표시하기 위해 AndroidSVG와 같은 라이브러리를 사용해야 합니다. AndroidSVG는 SVG 이미지를 파싱하고 안드로이드 그래픽 인터페이스에 렌더링하는 데 사용됩니다.

다음은 AndroidSVG를 사용하여 SVG 이미지를 ImageView에 표시하는 예제 코드입니다.

import com.caverock.androidsvg.SVG;
import com.caverock.androidsvg.SVGImageView;
import com.caverock.androidsvg.SVGParseException;
import android.content.res.AssetManager;
import android.graphics.Picture;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SVGImageView svgImageView = findViewById(R.id.svgImageView);

        try {
            AssetManager assetManager = getAssets();
            SVG svg = SVG.getFromAsset(assetManager, "my_svg_image.svg");
            Picture picture = svg.renderToPicture();
            svgImageView.setPicture(picture);
        } catch (SVGParseException | IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서 my_svg_image.svg를 알맞은 SVG 이미지 파일 이름으로 변경해야 합니다.

결론

이제 안드로이드에서 SVG 이미지를 리소스로 사용하고 처리하는 방법에 대해 알아보았습니다. SVG 이미지를 사용하면 안드로이드 앱의 디스플레이 크기와 해상도에 상관없이 깨지지 않고 선명하게 이미지를 표시할 수 있습니다. 안드로이드 앱에서 확장성과 선명도를 고려할 때 SVG 이미지는 매우 유용한 대안이 될 수 있습니다.

참고 문헌:

관련 글: