-
* Drawable
- resource로부터 생성.
res/drawable폴더속에 img1.png라는 파일을 넣음.
Drawable d = context.getResource.getDrawable(R.drawable.img1);
- bitmap로부터 변환
Drawable d = (Drawable)(new BitmapDrawable(bitmap));
- 동일 img1에 다른 인스턴스라도 Drawable은 공유 된다, 개별 투명도 조절.
( drawable.mutate()는 안드로이드 1.5부터 가능 )
Drawable d = context.getResources().getDrawable(R.drawable.img1);
if (book.isFavorite()) d.mutate().setAlpha(255); // 불투명
else d.mutate().setAlpha(50); // 반투명
- 그리기
Drawable d = context.getResources().getDrawable(R.drawable.img1);
d.setBounds(0,0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
d.draw(canvas);
* Bitmap
- ShapeDrawable: 도형과 gradient를 그림기 위해 사용.
- BitmapDrawable: 이미지를 디스플레이하기 위해 사용
https://developer.android.com/reference/android/graphics/drawable/BitmapDrawable.html
- 기본 생성
Bitmap bm = Bitmap.createBitmap(width, height, Config.ARGB_8888); // 또는 RGB_565(투명값X)Canvas canvas = new Canvas();
canvas.setBitmap(bm); //canvas에 draw되는건 모두 bm에 그려지게 된다.
- 리소스로부터 생성
Bitmap bm = BitmapFactory.decodeResource(context.getResources(), R.drawable.dwfox);
* Canvas
- 생성: Canvas canvas = new Canvas();
- 그려질 위치 변경:
canvas.save(); //변경이 유지되기에 복구해야 한다.
canvas.translate(x,y);
drawable.draw(canvas);
canvas.restore();