Android中实现绘制图片指定区域

目前,已经尝试过的方法有两种。

一。

			//getImage()是自己将decodeResource包装了一下。
			//返回值为Bitmap
			Bitmap bitmap = getImage(R.drawable.explosion2);
			//createBitmap(Bitmap source, int x, int y, int width, int height)
			//source:就不用说了,需要画上去的bitmap
			//x:这里指的是 画上去的x轴位置
			//y:这里指的是画上去的y轴位置
			//width:要截取的图片区域的宽度
			//height:要截取的图片区域的高度
			Bitmap tmp = Bitmap.createBitmap(bitmap, 0, 0, 45, 45);
			canvas.drawBitmap(tmp, x, y, paint);

个人认为,这种方法的好处就是,使用简单、方便。缺点就是,比较耗资源。createBitmap方法每次都会创建一个新的bitmap,那么,这种方法必然不会是最佳的方法。

二。

			Bitmap bitmap = getImage(R.drawable.explosion2);
			/**
			 * 这个矩形,是指图片中需要截取的部分
			 * @param left:表示从左边的x个像素开始
			 * @param top:从顶点向下的x个像素开始
			 * @param right:矩形区域的右边框
			 * @param bottom:矩形区域的底边框
			 * */
			Rect src = new Rect(0,0,45,45);
			/**
			 * 这个区域指的是,将src的矩形,画在当前指定的矩形框中。
			 * 如果src和des矩形大小不一致,则会将src中的内容进行相应的放大,缩小。
			 * 参数同src矩形
			 * */
			Rect des = new Rect((int)x,(int)y,(int)x+45,(int)y+45);
			canvas.drawBitmap(bitmap, src, des, paint);

像上面说的,该方法不只是进行图片截取,也可以进行放大,缩小。

另:在网上还看到一种方法,canvas.clipRect()。因为这种方法自己没测试过。所以 暂时忽略。

你可能感兴趣的:(Android中实现绘制图片指定区域)