2017-12-03 19 views
0

私は画面上の任意の場所にドラッグできるので、ユーザーが画面上にドラッグするとビューが表示されます。ビュー内のすべてが切り取られますが、どうすればそれを達成できますか?createbitmapとビューを使用した画像の切り取り

私は、切り抜く部分を計算するだけで切り抜くことができましたが、ビューの範囲内にあるものを切り抜きたい場合はどうすればよいでしょうか?

これは私のActiivtyです:何ができるか上の任意のヘルプや洞察力を事前に

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; 
} 

ありがとう! :

答えて

関連する問題