从可见的缩放图像android获取位图

我有一个缩放和旋转的Imageview (我已经使用了multitouch zooming )。 所以,我怎样才能得到只有可见内容的位图(我的意思是当我放大image ,位图的部分可能会走出屏幕,所以,我想要的是在屏幕上可见的bitmap )。 那么api是否有内置的function来创build一个大的位图? 或者是否有任何function使用x,y坐标来裁剪图像? 实际上我想要缩放或旋转的部分去下一个activity

Solutions Collecting From Web of "从可见的缩放图像android获取位图"

如果您知道所有缩放比例和旋转值,则可以使用这些值创build一个Matrix ,然后通过Bitmap.createBitmap()方法将它们应用于位图。
例:

 Bitmap original = ((BitmapDrawable) yourImageView.getDrawable()).getBitmap(); Matrix matrix = new Matrix(); matrix.setRotate(degrees); matrix.postScale(scale, scale); Bitmap result = Bitmap.createBitmap(original, 0, 0, original.getWidth(), original.getHeight(), matrix, true); 

一个更快,但也许不是一个漂亮的解决scheme是创build一个位图,并绘制当前可见的视图:

 Bitmap result = Bitmap.createBitmap(yourImageView.getWidth(), yourImageView.getHeight(), Bitmap.Config.RGB_565); Canvas c = new Canvas(result); yourImageView.draw(c); 

之后的结果应该包含你在屏幕上看到的。