- Viewview=activity.getWindow().getDecorView();
- view.setDrawingCacheEnabled(true);
- view.buildDrawingCache();
- bitmap=view.getDrawingCache();
- publicbooleanonTouch(Viewv,MotionEventevent){
- if(event.getAction()==MotionEvent.ACTION_DOWN){
- x=0;
- y=0;
- width=0;
- height=0;
- x=(int)event.getX();
- y=(int)event.getY();
- }
- if(event.getAction()==MotionEvent.ACTION_MOVE){
- m=(int)event.getX();
- n=(int)event.getY();
- myView.setSeat(x,y,m,n);
- myView.postInvalidate();
- }
- if(event.getAction()==MotionEvent.ACTION_UP){
- if(event.getX()>x){
- width=(int)event.getX()-x;
- }else{
- width=(int)(x-event.getX());
- x=(int)event.getX();
- }
- if(event.getY()>y){
- height=(int)event.getY()-y;
- }else{
- height=(int)(y-event.getY());
- y=(int)event.getY();
- }
- image2.setImageBitmap(getBitmap(this));
- }
- if(myView.isSign()){
- returnfalse;
- }else{
- returntrue;
- }
- }
- protectedvoidonDraw(Canvascanvas){
- if(sign){
- paint.setColor(Color.TRANSPARENT);
- }else{
- paint.setColor(Color.RED);
- paint.setAlpha(80);
- canvas.drawRect(newRect(x,y,m,n),paint);
- }
- super.onDraw(canvas);
- }
最后生成我们需要的图片展示出来,顺便保存到SD卡下一张。
- Rectframe=newRect();
- activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
- inttoHeight=frame.top;
- bitmap=Bitmap.createBitmap(bitmap,x,y+2*toHeight,width,height);
- try{
- FileOutputStreamfout=newFileOutputStream("mnt/sdcard/test.png");
- bitmap.compress(Bitmap.CompressFormat.PNG,100,fout);
- }catch(FileNotFoundExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- view.setDrawingCacheEnabled(false);