src와 srcCompat의 차이
안드로이드 ImageView를 사용하다보면 두 개의 설정(attribute)을 볼 수 있는데 src와 srcCompat이다.
보통 srcCompat에 이미지를 넣어보고 안되면 src에 이미지를 넣는데, 이 두 개의 차이가 무엇인지 살펴본다.
srcCompat은 Android Support Library에 포함된 방식(method of work)이다. (AppCompat에 있음)
안드로이드 서포트 라이브러리를 간단하게 의미하면 '어느 버전에서나 똑같이 구현할 수 있는'을 행하는 라이브러리라고 정의할 수 있다.
srcCompat은 vector Drawables(즉, 그림)를 모든 안드로이드에서 표현하게 해주는 안드 서포트 라이브러리 안에 구현된 기능이다. 그러므로 내가 해당 라이브러리를 쓰고 있는 것이 아니라면 당연히 srcCompat으로 리소스를 지정해봤자 에뮬레이터가 제대로 그려줄 리 없다.
그러므로 srcCompat을 사용하여 이미지를 그리고 싶다면 ImageView태그가 아닌 android.support.v7.widget.AppCompatImageView를 사용해야 한다.
또한 네임스페이스도 지정해줘야 한다 (xmlns:app="http://schemas.android.com/apk/res-auto")
minSDKversion이 롤리팝(5.0, level 21)이상이라면 src방식을 사용할 수 있는데 이때부터 안드로이드에서 머테리얼 디자인이 생겼기 때문이다.
src의 경우 xml에서 ImageView태그일 경우에 사용할 수 있으며 이때부터 src 설정을 사용하여 이미지를 넣을 수 있다.
srcCompat과 달리 롤리팝 이상부터 기본으로 지원하며 롤리팝 이전 버전을 지원해야 할 경우에는 반드시 srcCompat을 사용해야 한다.
과거에는 모든 버전을 커버할 수 있다는 점 때문에 srcCompat이 나름 가치가 있었으나 현재는 대부분의 사람들이 최소 롤리팝 이상의 버전을 쓰기 때문에 장점이 상당히 희석되었다.
추가로, srcCompat은 jpg 파일을 이미지로 사용할 수 없다.
'자바 > 자바 - 짧게 쓰는 글' 카테고리의 다른 글
멀티 쓰레드에서 SimpleDateFormat 사용 (0) | 2017.11.30 |
---|---|
얕은 복사 문제 (0) | 2017.07.30 |
JSP JasperException 해결 (0) | 2017.07.26 |
SQLException Can not issue data manipulation의 원인과 해결 (0) | 2017.07.22 |
톰캣 오류 http 500 Error instantiating servlet class 해결 (0) | 2017.07.21 |