Android实现图片的裁剪(不调用系统功能)-创新互联

接上一篇文章:Android实现图片区域裁剪功能

创新互联公司服务项目包括太白网站建设、太白网站制作、太白网页制作以及太白网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,太白网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到太白省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

上一篇文章提及了通过调用系统相册或拍照来实现图片的缩放\裁剪。不过这对于笔者项目的要求同样不适合,笔者需要的是通过对手机屏幕整个进行一个截图,并对这个截图进行裁剪操作。

依靠系统功能确实可以实现图片的裁剪,但是不够灵活。这里笔者提供一种较为灵活的做法。

但是这种做法的用户体验没有上篇文章的好,至于使用何种方法,读者应该自己衡量。

同样,我们先看实际效果图。

这里展示的是笔者项目的一小部分(阅读器):

我们点击左下角的剪切按钮

我们通过红色边框的四个角来控制裁剪的大小,移动红色框体来控制裁剪的位置区域。


接下来我们看看源码的实现:

首先点击剪切按钮的时候,我们应该生成一个Bitmap对象,传递给另一个Activty处理

具体做法如下:

cutP.setOnClickListener(new View.OnClickListener() { 
 
   public void onClick(View v) { 
    //将一些按钮隐藏 
    cutP.setVisibility(View.INVISIBLE); 
    mTopBarSwitcher.setVisibility(View.INVISIBLE); 
    mPageSlider.setVisibility(View.INVISIBLE); 
    back.setVisibility(View.INVISIBLE); 
    mPageNumberView.setVisibility(View.INVISIBLE); 
    View view = MuPDFActivity.this.getWindow().getDecorView(); 
    if (false == view.isDrawingCacheEnabled()) { 
     view.setDrawingCacheEnabled(true); 
    } 
    Bitmap bitmap = view.getDrawingCache(); 
    ImageView imgv = new ImageView(MuPDFActivity.this); 
    imgv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
      LayoutParams.FILL_PARENT-200)); 
    imgv.setImageBitmap(bitmap); 
    backBitmap = bitmap; 
    //传递给另一个Activity进行裁剪 
    Intent intent = new Intent(); 
    intent.setClass(MuPDFActivity.this, CutActivity.class); 
    startActivity(intent); 
 
   } 
    
  }); 

分享文章:Android实现图片的裁剪(不调用系统功能)-创新互联
转载来源:http://ybzwz.com/article/dcsees.html