2016-09-13 5 views
3

획이 파란색이고 채우기가 빨간색 인 둥근 사각형을 그려야하지만 그림판 클래스에서 획 색상을 설정하는 메서드를 찾을 수 없습니다. 어떻게해야합니까?캔버스에 직사각형을 그릴 때 획 색상을 설정하는 방법은 무엇입니까?

mCanvas.drawColor(mBackgroundColor, PorterDuff.Mode.CLEAR); 
    mCanvas.setDrawFilter(mPaintFlagsDrawFilter); 

    mPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
    mPaint.setColor(Color.RED); 
    mPaint.setStrokeWidth(2); 
    mPaint.setStrokeCap(Paint.Cap.ROUND); 
    mRectF.set(0, 0, mWidth, mHeight); 
    mCanvas.drawRoundRect(mRectF, 10, 10, mPaint); 
+2

'FILL' 스타일로 빨간색 직사각형을 그리고'STROKE' 스타일로 동일한 위치에 파란색 직사각형을 그립니다. –

답변

5

페인트는 한 번에 한 가지 색상 만 허용합니다.

mCanvas.drawColor(mBackgroundColor, PorterDuff.Mode.CLEAR); 
mCanvas.setDrawFilter(mPaintFlagsDrawFilter); 

mFillPaint.setStyle(Paint.Style.FILL); 
mFillPaint.setColor(Color.RED); 
mStrokePaint.setStyle(Paint.Style.STROKE); 
mStrokePaint.setColor(Color.BLUE); 
mStrokePaint.setStrokeWidth(2); 
mStrokePaint.setStrokeCap(Paint.Cap.ROUND); 
mRectF.set(0, 0, mWidth, mHeight); 
mCanvas.drawRoundRect(mRectF, 10, 10, mFillPaint); 
mCanvas.drawRoundRect(mRectF, 10, 10, mStrokePaint); 

둥근 사각형이 올바르게 보이지 않는 경우보기 경계에서 잘릴 수 있습니다. StrokeWidth의 절반을 허용하도록 RectF를 조정하십시오.

mRectF.set(1, 1, mWidth - 1, mHeight - 1); 
관련 문제