Android에서 Bitmap과 Drawable의 차이점은 무엇입니까?
검색했지만 Android에서 Bitmap과 Drawable의 차이점에 대해 설명하는 기사를 찾을 수 없습니다.
비트 맵은 비트 맵 이미지 (예 : java.awt.Image)의 표현입니다. 드로어 블은 "그릴 수있는 것"의 추상화입니다. 비트 맵 (으로 래핑 됨 BitmapDrawable
) 일 수 있지만 단색, 다른 Drawable 개체의 컬렉션 또는 기타 여러 구조 일 수도 있습니다.
대부분의 Android UI 프레임 워크는 Bitmap 객체가 아닌 Drawable 객체로 작업하는 것을 좋아합니다. 뷰는 모든 드로어 블을 배경으로 받아 들일 수 있습니다. ImageView는 전경 Drawable을 표시 할 수 있습니다. 리소스로 저장된 이미지는 Drawable 개체로로드됩니다.
Drawable은 그릴 수있는 것입니다. 예 : 레이아웃, 벡터 이미지 (선, 원), 글꼴, 이미지 등
비트 맵-PNG, JPEG 등과 같은 이미지 인 드로어 블의 특정 유형입니다.
비트 맵은 이미지가 아닙니다. 비트 맵은 비트 맵입니다 (참고 이름 : 비트 맵). 그리고이지도는 무언가를 그릴 수있는 픽셀을 나타냅니다. 예를 들어 정사각형과 같은 사용자 정의 비트 맵 (이미지 아님) 일 수 있습니다.
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
또는 이미지에서 Bitmap 객체를 만들 수 있습니다.
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
비트 맵은 픽셀 홀더입니다. 그리고 Canvas는 비트 맵 (비트 맵 픽셀)에 무언가를 그리는 데 사용됩니다.
Drawable에 대한 모든 것은 위에 잘 설명되어 있습니다.
TL; DR
어떤 사람들은 캔버스에 그리는 것을 씁니다. 캔버스에 그리지 않습니다. Canvas 도우미 메서드를 사용하여 비트 맵 픽셀에 그립니다.
Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.RED) // now all bitmap pixels became red
드로어 블 리소스
Drawable
자원이 화면에 그려 질 수 있으며, 같은 API를 사용하여 검색 할 수있는 그래픽에 대한 일반적인 개념 getDrawable(int)
이나 같은 속성을 또 다른 XML 리소스에 적용 android:drawable
하고 android:icon
. 드로어 블에는 여러 유형이 있습니다.
비트 맵 파일 , 비트 맵 그래픽 파일 (.png, .jpg 또는 .gif)은
BitmapDrawable
.Nine-Patch File ,
PNG
콘텐츠 (.9.png)에 따라 이미지 크기를 조정할 수있는 확장 가능한 영역이 있는 파일은NinePatchDrawable
.목록 레이어 하는
Drawable
다른 배열 관리Drawable
들. 이들은 배열 순서로 그려 지므로 가장 큰 인덱스를 가진 요소가 맨 위에 그려지고LayerDrawable
.상태 목록 ,
XML
다른 상태에 대해 다른 비트 맵 그래픽을 참조 하는 파일 (예 : 버튼을 눌렀을 때 다른 이미지 사용)은StateListDrawable
.레벨 목록 , 각각 최대 숫자 값이 할당 된 여러 대체를 관리하는
XML
을 정의 하는 파일 은 .Drawable
Drawable
LevelListDrawable
Transition Drawable , 두 리소스 간에 교차 페이드 할 수
XML
있는을 정의 하는 파일 은 .Drawable
Drawable
TransitionDrawable
Inset Drawable , 지정된 거리만큼 다른
XML
것을 삽입 하는 을 정의 하는 파일입니다 . 이것은 뷰의 실제 경계보다 작은 배경 이 필요할 때 유용 합니다.Drawable
Drawable
View
Drawble
Clip Drawable , 이 현재 레벨 값을 기반으로 다른 클립
XML
을 정의 하는 파일 은 .Drawable
Drawable
Drawable
ClipDrawable
Scale Drawable , 현재 레벨 값에 따라 다른 크기를 변경하는
XML
을 정의 하는 파일 은 .Drawable
Drawable
ScaleDrawable
Shape Drawable ,
XML
색상 및 그라디언트를 포함하여 기하학적 모양을 정의 하는 파일은ShapeDrawable
.
.NET Framework를 만드는 방법은 애니메이션 리소스 문서를 참조하세요 AnimationDrawable
.
참고 : 색상 자원도로 사용할 수 있습니다 Ddrawable
에서 XML
. 예를 들어를 만들 때 속성 ( )에 StateListDrawable
대한 색상 리소스를 참조 할 수 있습니다 .android:drawable
android:drawable="@color/green"
비트 맵
비트 맵 이미지. Android는 .png (선호), .jpg (허용), .gif (권장)의 세 가지 형식의 비트 맵 파일을 지원합니다.
파일 이름을 리소스 ID로 사용하여 비트 맵 파일을 직접 참조하거나 XML로 별칭 리소스 ID를 만들 수 있습니다.
참고 : 비트 맵 파일은 빌드 프로세스 중에 aapt 도구에 의해 무손실 이미지 압축으로 자동 최적화 될 수 있습니다. 예를 들어 256 색 이상이 필요하지 않은 트루 컬러 PNG는 색상 팔레트가있는 8 비트 PNG로 변환 될 수 있습니다. 이렇게하면 동일한 품질의 이미지가 생성되지만 메모리가 덜 필요합니다. 따라서이 디렉토리에있는 이미지 바이너리는 빌드 중에 변경 될 수 있습니다. 비트 맵으로 변환하기 위해 이미지를 비트 스트림으로 읽으려는 경우 이미지를 res/raw/
최적화되지 않는 폴더에 대신 넣으십시오 .
'development' 카테고리의 다른 글
Capybara에서 자바 스크립트 팝업을 어떻게 확인합니까? (0) | 2020.11.14 |
---|---|
간단한 IEnumerator 사용 (예제 포함) (0) | 2020.11.14 |
자바 : 정적 초기화 블록은 언제 유용합니까? (0) | 2020.11.14 |
쿠키 도메인의 점 접두사는 무엇을 의미합니까? (0) | 2020.11.14 |
Windows의 Git, "메모리 부족-malloc 실패" (0) | 2020.11.14 |