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

이미지뷰 or relative layout에 부채꼴 그릴려면

0 추천

구글링 해보니 drawArc 라는것을 이용한다고 하는것 같고

protected void onDraw(Canvas canvas) {

  canvas.drawColor(Color.CYAN);
  Paint p = new Paint();
  // smooths
  p.setAntiAlias(true);
  p.setColor(Color.RED);
  p.setStyle(Paint.Style.STROKE); 
  p.setStrokeWidth(5);
  // opacity
  //p.setAlpha(0x80); //

  RectF rectF = new RectF(50, 20, 100, 80);
  canvas.drawOval(rectF, p);
  p.setColor(Color.BLACK);
  canvas.drawArc (rectF, 90, 45, true, p);
 }

위 소스를 MainActivity.java 파일에 추가를 했는데요.

소스상에 에러는 없는것 같아서 어플은 실행이 잘 되는데

부채꼴이 화면에 나타나지가 않네요.

소스 보시다시피, 소스상에는 "어떤 뷰(특정 이미지뷰 혹은 relativelayout)에 그려라" 라는게

나와있지 않은걸보면 화면에 부채꼴이 나타나지 않는게 당연하기도 하네요.

저 protected void onDraw 라는걸 화면상에 표현 내지는 실행을 해줄려면 어떻게 하면 될까요?

 

개님의습성 (2,500 포인트) 님이 2013년 6월 9일 질문

1개의 답변

0 추천
Bitmap bitmap = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas();
    canvas.setBitmap(bitmap);
    canvas.drawColor(Color.WHITE);
    
    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setStyle(Style.FILL);
    
    int ed = Integer.parseInt(edit.getText().toString());
    int ed1 = Integer.parseInt(edit1.getText().toString());
    
    RectF rectf = new RectF(0, 0, 200, 200);
    paint.setColor(Color.BLACK);
    canvas.drawArc(rectf, 값, 값, true, paint);
    view.setImageBitmap(bitmap);

저같은 경우는 각도를 주면 그각도만큼 색이 채워지는 걸 구현했었는데요.. 한번 보시구 비교해보시기 바랍니다.
안드로메다개발자 (8,830 포인트) 님이 2013년 6월 10일 답변
...