本文转自:

http://blog.csdn.net/hopezhangbo/article/details/7356571

        
  1. Viewview=activity.getWindow().getDecorView();
  2. view.setDrawingCacheEnabled(true);
  3. view.buildDrawingCache();
  4. bitmap=view.getDrawingCache();

然后我们需呀计算出我们选定区域的坐标点,注意正选和反选的计算方式不同,

        
  1. publicbooleanonTouch(Viewv,MotionEventevent){
  2. if(event.getAction()==MotionEvent.ACTION_DOWN){
  3. x=0;
  4. y=0;
  5. width=0;
  6. height=0;
  7. x=(int)event.getX();
  8. y=(int)event.getY();
  9. }
  10. if(event.getAction()==MotionEvent.ACTION_MOVE){
  11. m=(int)event.getX();
  12. n=(int)event.getY();
  13. myView.setSeat(x,y,m,n);
  14. myView.postInvalidate();
  15. }
  16. if(event.getAction()==MotionEvent.ACTION_UP){
  17. if(event.getX()>x){
  18. width=(int)event.getX()-x;
  19. }else{
  20. width=(int)(x-event.getX());
  21. x=(int)event.getX();
  22. }
  23. if(event.getY()>y){
  24. height=(int)event.getY()-y;
  25. }else{
  26. height=(int)(y-event.getY());
  27. y=(int)event.getY();
  28. }
  29. image2.setImageBitmap(getBitmap(this));
  30. }
  31. if(myView.isSign()){
  32. returnfalse;
  33. }else{
  34. returntrue;
  35. }
  36. }

然后为我们计算出来的坐标区域添加选中效果

        
  1. protectedvoidonDraw(Canvascanvas){
  2. if(sign){
  3. paint.setColor(Color.TRANSPARENT);
  4. }else{
  5. paint.setColor(Color.RED);
  6. paint.setAlpha(80);
  7. canvas.drawRect(newRect(x,y,m,n),paint);
  8. }
  9. super.onDraw(canvas);
  10. }

最后生成我们需要的图片展示出来,顺便保存到SD卡下一张。

        
  1. Rectframe=newRect();
  2. activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
  3. inttoHeight=frame.top;
  4. bitmap=Bitmap.createBitmap(bitmap,x,y+2*toHeight,width,height);
  5. try{
  6. FileOutputStreamfout=newFileOutputStream("mnt/sdcard/test.png");
  7. bitmap.compress(Bitmap.CompressFormat.PNG,100,fout);
  8. }catch(FileNotFoundExceptione){
  9. //TODOAuto-generatedcatchblock
  10. e.printStackTrace();
  11. }
  12. view.setDrawingCacheEnabled(false);

更多相关文章

  1. Android GPS获得经纬度并得到该坐标精确地址
  2. Android获取点击屏幕的位置坐标
  3. Android MotionEvent 坐标获取
  4. Android GPS 获得 经纬度 并得到该 坐标 精确地址
  5. android Draw Rect 坐标图示
  6. android view相对于根布局的坐标获取
  7. Android调用系统Activity选取图像部分区域
  8. Android开发:布局分区域设置不同背景色
  9. Android前置摄像头预览并检测人脸,获取人脸区域亮度

随机推荐

  1. Android Studio Lambda表达式的使用
  2. android之BroadcastReceiver实例
  3. edittext获取焦点并弹出软键盘
  4. Activity跳转黑屏,闪屏,白屏解决
  5. android 判断ImageView当前显示的是哪一
  6. Android Studio Gradle简单使用
  7. 图片加载框架简单介绍 ImageLoader 的基
  8. [置顶] 使用Android(安卓)OpenGL ES 2.0
  9. Dockerfile中使用sdkmanager安装Android(
  10. Android 实现对话框 警告对话框、列表对