Android에서 캔버스를 통해 빈 비트 맵 생성 및 그리기


답변:


196

이것은 아마도 당신이 생각하는 것보다 더 간단 할 것입니다.

int w = WIDTH_PX, h = HEIGHT_PX;

Bitmap.Config conf = Bitmap.Config.ARGB_8888; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

다음 주제에 대해 찾은 일련의 자습서 입니다. 캔버스 시리즈로 그리기


별도의 클래스 내에서 생성하면 다른 클래스의 비트 맵을 어떻게 참조 할 수 있습니까? 예 : Bitmap text = BitmapFactory.decodeResource (mContext.getResources (), What to put here?); OpenGL 라이브 배경 화면 내에 textView가 필요합니다. 미리 감사드립니다
Steve C.

안녕하세요 @bigstones 저는 비트 맵을 만들 때 onSizeChanged ()에서 비트 맵을 만드는 코드를 따르고 있습니다. OutOfMemoryError가 발생합니다.이 stackoverflow.com/questions/24303759/
user123456

SurfaceView를 사용하는 동안 다른 스레드에서 어떻게이 작업을 수행 할 수 있습니까?
Zach H

-3

Bitmap.Config.ARGB_8888을 사용하지 마십시오.

대신 int w = WIDTH_PX, h = HEIGHT_PX를 사용하십시오.

Bitmap.Config conf = Bitmap.Config.ARGB_4444; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

ARGB_8888은 더 많은 비트 맵이나 큰 비트 맵을 다룰 때 OutOfMemory 문제에 빠질 수 있습니다. 또는 더 나은 방법은 ARGB 옵션 자체의 사용을 피하는 것입니다.


12
ARGB_4444는 현재 지원 중단되었습니다 ( developer.android.com/reference/android/graphics/… )
Allen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.