【问题标题】:Cropping image using createbitmap and a view使用 createbitmap 和视图裁剪图像
【发布时间】:2017-12-04 10:39:07
【问题描述】:

我有一个可以拖动到屏幕上任何位置的视图,所以如果用户将它拖动到屏幕上。那么视图中的所有内容都只会被裁剪,我该如何实现呢?

我已经能够通过计算要裁剪的部分来进行裁剪,但是如果我想裁剪视图范围内的任何内容怎么办?

这是我的活动:

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

在此先感谢您提供有关可以做什么的任何帮助和见解! :D

【问题讨论】:

    标签: android bitmap createbitmap


    【解决方案1】:

    您实际上不必重新发明轮子,有可用的库,例如 https://github.com/ArthurHub/Android-Image-Cropperhttps://github.com/Yalantis/uCrop

    不过,如果您想研究他们是如何做到的,那么这里的代码是开源的。看看他们。

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多