마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

View 클래스의 onDraw 에서

0 추천
View 클래스의 onDraw 에서

canvas.drawRect(r, paint); 같은함수로 그림그릴때

Drawable 로 속을채워주는방법 없을까요?
구름처럼달처럼 (5,830 포인트) 님이 2015년 2월 23일 질문
ActionBar bar = getActionBar();
        bar.setCustomView(setActionBarCustomListener(),
                new ActionBar.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); // 커스텀뷰을 보여준다.
        Drawable d = null;
        Resources mResource = getResources();
        try {
             d = Drawable.createFromXml(mResource, mResource.getXml(R.drawable.btn_genoa));
        } catch (Exception ex) {
            //Log.e("Error", "Exception loading drawable");
        }
        bar.setBackgroundDrawable(d);
위코드는 엑션바의 배경을 drawable 폴더에있는 xml 리소스를 가져와서
설정하는부분입니다
이렇게 View 에서canvas.drawRect 같은함수로 그림그릴때
배경색을 Drawable 로 채우는방법을 찿고있습니다

4개의 답변

+2 추천
 
채택된 답변
Canvas의 draw계열 함수( 예를 들어 drawRect 등)로 그린 도형 안을 drawable로 채우고 싶다는 말씀이신 것 같습니다.

void onDraw(Canvas c) {

    Drawable d = getResource().getDrawable(R.drawable.xxxx);

    d.setBounds(rc_to_draw_rect);

    d.draw(c);

    paint_for_canvas.setStyle(Style.STROKE);

    paint_for_canvas.setStrokeWidth(5);

    paint_for_canvas.setColor(Color.BLACK);

    c.drawRect(rc_to_draw_rect, paint_for_canvas);

}

이런식으로 하면 drawRect의 안을 drawable로 채우고 테두리는 5픽셀의 검정색으로 그릴 수 있습니다.
레오나 (3,290 포인트) 님이 2015년 2월 23일 답변
구름처럼달처럼님이 2015년 2월 23일 채택됨
한참헤멨었는데 잘됩니다
감사합니다
+1 추천
Drawable d = getResources().getDrawable(R.drawable.aaa);
d.setBounds(0, 0, 100, 100);
d.draw(canvas);
alkyne (22,960 포인트) 님이 2015년 2월 23일 답변
0 추천
aucd29 (218,390 포인트) 님이 2015년 2월 23일 답변
얼마전에도 같은질문을 올렸는데
비슷한 대답을 들었습니다
근데 전 이해를 못하고있습니다
제가 질문한내용은 Drawable 로 속을 채우는질문인데
링크속에는 Drawable 을 이용하는코딩은 안보이는데
제가 뭘 이해못하고있는건가요???
Drawable 로 속을 채운다는건 뭔말인가요? 뭘로 속을 채우던 무슨 상관이있는거죠?
0 추천
onDraw 에서 xfermode 를 사용해보시기바랍니다.
nicehee (73,100 포인트) 님이 2015년 2월 23일 답변
...