【Android】Bitmap上繪製矩形/畫中畫
阿新 • • 發佈:2019-01-25
Bitmap photo = BitmapFactory.decodeResource(getResources(), R.drawable.img); Bitmap tempBitmap = photo.copy(Bitmap.Config.ARGB_8888, true); Canvas canvas = new Canvas(tempBitmap); //影象上畫矩形 Paint paint = new Paint(); paint.setColor(Color.RED); paint.setStyle(Paint.Style.STROKE);//不填充 paint.setStrokeWidth(10); //線的寬度 canvas.drawRect(10, 20, 100, 100, paint); show.setImageBitmap(tempBitmap); //畫中畫 Paint photoPaint = new Paint(); // 建立畫筆 photoPaint.setDither(true); // 獲取跟清晰的影象取樣 photoPaint.setFilterBitmap(true);// 過濾一些 Rect src = new Rect(0, 0, photo.getWidth(), photo.getHeight());// 建立一個指定的新矩形的座標 Rect dst = new Rect(0, 0, 100, 150);// 建立一個指定的新矩形的座標 canvas.drawBitmap(tempBitmap, src, dst, photoPaint);// 將photo 縮放或則擴大到 show.setImageBitmap(tempBitmap);
// btn = (Button)findViewById(R.id.button); // btn.setOnClickListener(new View.OnClickListener(){ // @Override // public void onClick(View v){ // Bitmap photo = BitmapFactory.decodeResource(getResources(), R.drawable.img); // Bitmap tempBitmap = photo.copy(Bitmap.Config.ARGB_8888, true); // Canvas canvas = new Canvas(tempBitmap); // // //影象上畫矩形 // Paint paint = new Paint(); // paint.setColor(Color.RED); // paint.setStyle(Paint.Style.STROKE);//不填充 // paint.setStrokeWidth(10); //線的寬度 // canvas.drawRect(10, 20, 100, 100, paint); // show.setImageBitmap(tempBitmap); // // //畫中畫 // Paint photoPaint = new Paint(); // 建立畫筆 // photoPaint.setDither(true); // 獲取跟清晰的影象取樣 // photoPaint.setFilterBitmap(true);// 過濾一些 // // Rect src = new Rect(0, 0, photo.getWidth(), photo.getHeight());// 建立一個指定的新矩形的座標 // Rect dst = new Rect(0, 0, 100, 150);// 建立一個指定的新矩形的座標 // canvas.drawBitmap(tempBitmap, src, dst, photoPaint);// 將photo 縮放或則擴大到 // show.setImageBitmap(tempBitmap); // } // });