2017-12-03 9 views
0

사용자가 화면에서 드래그 할 수있는 뷰가 있으므로 사용자가 화면에서 드래그하면 볼 수 있습니다. 그러면 뷰 내의 모든 것이 잘릴 것입니다. 어떻게 달성 할 수 있습니까?createbitmap 및 뷰를 사용하여 이미지 자르기

자르기 할 부분을 계산하여 잘라낼 수 있었지만보기 범위 내에있는 내용을 자르려면 어떻게해야합니까? 무엇을 할 수 있는지에 어떤 도움과 통찰력에 미리

View views; 

    @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    btnCrop = (Button) findViewById(R.id.btnCrop); 

    imageView = (ImageView) findViewById(R.id.imageView); 

    views = (View) findViewById(R.id.view); 

    views.setOnTouchListener(new View.OnTouchListener() { 
     private int initialX; 
     private int initialY; 
     private float initialTouchX; 
     private float initialTouchY; 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      switch (event.getAction()) { 
       case MotionEvent.ACTION_DOWN: 
        initialX = (int) views.getX(); 
        initialY = (int) views.getY(); 
        initialTouchX = event.getRawX(); 
        initialTouchY = event.getRawY(); 
        return true; 
       case MotionEvent.ACTION_MOVE: 
        views.setX(initialX + (int) (event.getRawX() - initialTouchX)); 
        views.setY(initialY + (int) (event.getRawY() - initialTouchY)); 
        return true; 
      } 
      return false; 
     } 
    }); 

btnCrop.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Bitmap croppedBmp = Bitmap.createBitmap(mbitmap, 0, 0, 
        mbitmap.getWidth(), mbitmap.getHeight()/2); 

      imageView.setImageBitmap(croppedBmp); 
     } 
    }); 
    } 


public Bitmap getBitmapOFRootView(View v) { 
    View screenView = v.getRootView(); 
    screenView.setDrawingCacheEnabled(true); 
    Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache()); 
    screenView.setDrawingCacheEnabled(false); 

    return bitmap; 
} 

감사 :

이 내 Actiivty입니다! : D

답변