Hayden's Archive

[Android] android:tint 사용시 에러(안드로이드 스튜디오 최신 버전) 본문

Study/ETC

[Android] android:tint 사용시 에러(안드로이드 스튜디오 최신 버전)

_hayden 2021. 5. 20. 02:20
<ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/banana"
        android:tint="#70ff00ff" />

activity_main.xml에서 위와 같은 코드를 작성하였고 아래와 같이 에러가 발생하였다.

 

 

안드로이드 스튜디오 최신 버전에서 발생하는 이슈 사항으로, android:tint를 사용할 수 없는 에러가 발생한다.

 

 

 

방법 1) android:tint 대신 app:tint 사용

참고 : https://fornewid.medium.com/%EB%86%93%EC%B9%98%EA%B8%B0-%EC%89%AC%EC%9A%B4-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-ui-%EB%94%94%ED%85%8C%EC%9D%BC-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0-5e5f98c836af

 

놓치기 쉬운 안드로이드 UI 디테일 살펴보기

지난 주에 2020 NAVER 테크콘서트 온라인 행사가 열렸습니다. 저도 참여할 수 있었는데요. 영상으로만 남기기에 조금 아쉬운 마음이 들어 행사에서 발표한 내용 일부를 글로 옮겨봤습니다.

fornewid.medium.com

 

android:tint는 ImageView의 속성이고, app:tint는 AppCompatImageView의 속성이다. 

android:가 붙는 속성은 플랫폼에 정의된 속성으로, 플랫폼 버전에 따라 차이가 발생할 수 있다.

하지만 AppCompatImageView는 AppCompat이라고 하는 안드로이드 공식 라이브러리에 포함된 위젯이므로 플랫폼에 독립적으로 작용할 수 있다.

그래서 android:tint 대신 app:tint를 사용하게 하는 듯하다.

 

레이아웃에는 다음과 같은 속성을 추가하고

xmlns:app="http://schemas.android.com/apk/res-auto"

 

android:tint 대신 app:tint를 사용한다.

<ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/banana"
        app:tint="#70ff00ff" />

 

 

 

방법 2) android:tint를 사용하는 명령어 추가

아래와 같이 tools:ignore="UseAppTint"를 추가해주면 android:tint를 사용할 수 있다.

<ImageView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/banana"
        tools:ignore="UseAppTint"
        android:tint="#70ff00ff" />