今天在开发中需要截取正在播放的在线视频中的画面,于是在网上找了几种方法,但效果都一样,截出来的图片黑黑的一片,为了验证截屏方法是不是有问题,于是就截了个全屏,发现截出来的图片屏幕上半部分VideoView区域黑黑的一片,下半部分界面正常截取,说明截屏方法没有问题,问题出在VideoView截屏的时候获得不到画面,网上找了多种方法试了也没有解决,最后灵机一动想到了一种方法:使用adb命令截取全屏,然后再用代码对截取的全屏图片进行截取处理为需要的部分,问题解决。
我是一枚新人,朋友们有什么更好的方法或者本文不足请多多指教。
代码如下:
/**}
然后在需要显示的地方或者处理图片的地方:
用Bitmap oldMap = BitmapFactory.decodeFile(path);//path:保存图片的路径。
Bitmap newMap = Bitmap.createBitmap(oldMap,0,0,width,height);//老的bitmap,X起始点,Y起始点, X结束点,Y结束点
这样就获得需要长款的截图,本文截出来的图片宽和高是相反的,所以需要进行X,Y的起始点和结束点互换,并且需要顺时针旋转90度,方法如下:
Matrix mx = new Matrix();
mx.postRotate(90);
所以上面第二行代码需要这样写: Bitmap newMap = Bitmap.createBitmap(oldMap,0,0,height,width,mx,true):
问题解决,如果哪位朋友有更好的方法和发现不足请多多指教!谢谢