2013-10-28 4 views
1

자르기 기능을 구현하고 싶습니다. 여기서 이미지 뷰 위에 작은 사각형을 배치하고 싶습니다. 사각형은 정적이어야하며 이미지를 이동하여 직사각형 영역 내에서 이미지를 자르고 싶습니다. 그런 다음 사각형 내에서 자른 이미지로 이미지를 가져옵니다. Bitmap을 매개 변수로 사용하여 캔버스를 만들려고했지만 작동하지 않습니다. 나는이 일을하는 법을 찾기 위해 많은 노력을했습니다. 그러나 그것을 어디에서도 발견 할 수 없었다. 당신은 그것을 위해 뷰의 onDraw() 방법에 드로잉 코드를 삽입 할 필요가 ...사각형 그리기 ImageVIew 오버

Bitmap bitmap=BitmapFactory.decodeResource(this.getResources(), R.drawable.indoor); 

    Bitmap mutBitmap = Bitmap.createBitmap(200, 400,bitmap.getConfig()); 

    Canvas canvas = new Canvas(mutBitmap); 

      Paint paint = new Paint(); 
      paint.setColor(Color.BLACK); 
      paint.setStyle(Paint.Style.FILL_AND_STROKE); 
      paint.setStrokeWidth(10); 
      float leftx = 20; 
      float topy = 20; 
      float rightx = 50; 
      float bottomy = 100; 
      canvas.drawRect(leftx, topy, rightx, bottomy, paint); 

나는 위의 코드를 사용하고 있지만 사각형이 이미지 뷰에 그려지지 않습니다 ..

+0

당신이 가지고, 코드를 게시 할 수 현재 시도한 .. 그리고 당신이 의미하는 것은 _ "작동하지 않습니다"_ 충돌 ..., 보이지 않습니까? 또는 무엇을? –

+0

여기에서 이슈에 대한 몇 가지 팁을 얻을 수 있습니다. http://stackoverflow.com/questions/19263989/optimizing-custom-crop-drawing – Niko

+0

@AmulyaKhare 편집보기 ... – Bhavna

답변

4

도와주세요 표시됩니다. 당신은 이미지 뷰에서 상속 사용자 정의 클래스를 작성해야합니다, 다음 아래와 같이 onDraw() 메소드를 오버라이드 (override) : 레이아웃에서 지금

class DrawView extends ImageView { 

    public DrawView(Context context) { 
     super(context); 
    } 

    DrawView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    DrawView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     Paint paint = new Paint(); 
     paint.setColor(Color.BLACK); 
     paint.setStyle(Paint.Style.FILL_AND_STROKE); 
     paint.setStrokeWidth(10); 
     float leftx = 20; 
     float topy = 20; 
     float rightx = 50; 
     float bottomy = 100; 
     canvas.drawRect(leftx, topy, rightx, bottomy, paint); 
    } 
} 

가 대신 DrawView을 포함하여 ImageView

+0

'super.onDraw()'호출을 포함하도록 답변이 업데이트되었습니다. –

+0

에 대한 동적 속성을 설정하는 방법 rect? –