안드로이드 레이아웃 XML에서 앱:srcCompat과 안드로이드:src의 차이점
Android Studio의 Vector Assets를 사용하여 아이콘이 추가된 ImageView를 만들 때마다 줄에 오류가 발생합니다.app:srcCompat="@drawable/ic_play"
변경할 때app:srcCompat
와 함께android:src
오류는 사라졌지만 아이콘은 픽셀로 표시됩니다.
사이의 주요 차이점은 무엇입니까?
app:srcCompat="@drawable/ic_play"
그리고.
android:src="@drawable/ic_play"
벡터 드로잉을 앱에 통합하는 가장 확실한 방법입니다.벡터 드로잉을 사용하면 여러 png 자산을 XML로 정의된 단일 벡터 그래픽으로 대체할 수 있습니다. 이전에는 롤리팝 이상의 장치로 제한되었습니다.
메모
Android 지원 라이브러리 23.3.0 이후 지원 벡터 드로잉은 를 통해서만 로드할 수 있습니다.
vectorDrawables.useSupportLibrary = true를 추가해야 합니다.build.gradle
파일
// Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
그리기 테이블을 이 이미지 보기의 내용으로 설정합니다.원래 크기로 표시됩니다.자동 스케일링 없음.
사용 중인 경우android:src="@drawable/some_vector"
없이.vectorDrawables.useSupportLibrary = true
build.gradle 파일과 앱에는 벡터 이미지가 있습니다(확장 가능). 그러면 apk 파일을 빌드하는 동안 Android gradle 플러그인은 각 벡터 그리기 가능한 화면(hdpi, xhdpi...)에서 많은 *.png 파일을 생성합니다(API = < 19만 해당).그 결과 - 더 큰 크기의 pk.
사용 시app:srcCompat="@drawable/some_vector"
와 함께vectorDrawables.useSupportLibrary = true
안드로이드는 생성하지 않고 벡터 그리기 가능한 파일을 사용합니다.*.png
파일
Android Studio apk Analyzer 툴로 확인할 수 있습니다.사용 및 사용하지 않고 pk 구축vectorDrawables.useSupportLibrary = true
.
저는 이것이 가장 큰 차이점이라고 생각합니다.
사용:
app:srcCompat="@drawable/backImage"
srcCompat 특성은 실제로 AppCompat 라이브러리 내에 정의됩니다.중요: 이 작업에 적합한 네임스페이스를 추가해야 합니다.
xmlns:app="http://schemas.android.com/apk/res-auto"
메모
당신이 받고 있는 것은 무시할 수 있는 단순한 오류인 것 같습니다.저는 같은 오류를 시도해 보았지만, 제대로 작동하고 있습니다.
사용할 수 있습니다.tools:ignore="MissingPrefix"
이 오류가 일시적으로 표시되지 않도록 합니다.
이것이 도움이 되길 바랍니다.
app:srcCompat="some_resource"
지원 라이브러리에 있는 AppCompativity src를 참조합니다.
android:src="some_resource"
단순한 활동을 말합니다.
벡터 및 애니메이션 벡터는 최신 버전의 프레임워크에서만 지원됩니다. srcCompat은 호환성 라이브러리와 함께 사용하여 사용할 수 있지만 지원 라이브러리의 특정 보기에서만 작동합니다.안드로이드: 대신 앱:이 사용된다는 점에 유의하십시오.이는 프레임워크의 일부가 아니라 앱에서 정의한 매개 변수를 의미합니다.
Android 5.0(API 레벨 21) 이상은 벡터 그리기 지원을 제공하여 이전 버전의 벡터 그리기 지원 앱:srcCompat이 추가되었습니다.
언급URL : https://stackoverflow.com/questions/40624554/difference-between-appsrccompat-and-androidsrc-in-androids-layout-xml
'programing' 카테고리의 다른 글
이미지가 로드될 때 자바스크립트 콜백을 실행하려면 어떻게 해야 합니까? (0) | 2023.08.07 |
---|---|
UIImageView 뒤에 그림자를 만드는 가장 좋은 방법은 무엇입니까? (0) | 2023.08.07 |
키 저장소 정보를 build.gradle에 넣지 않고 APK 서명 (0) | 2023.08.07 |
테이블 생성/삭제 후 복원 지점 생성에도 불구하고 "테이블 정의가 변경됨" (0) | 2023.08.07 |
Spring Junit 응용 프로그램 컨텍스트를 테스트 클래스에서 더럽힌 후 재설정하는 방법은 무엇입니까? (0) | 2023.08.07 |