ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android Drawable, Bitmap, Canvas
    Search: 카테고리 없음 카테고리 없음 2017. 10. 22. 18:21


    * 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();



    댓글