在网上找了许多的图片旋转方法,总是旋转之后有黑色填充,导致会覆盖其下面的布局。
花了些许时间,写了个小Demo。
主要利用Canvas自身的旋转和平移。
如果对Canvas 的save,translate,rotate很熟悉的话,可以比较快速的实现图片旋转,且中心点不偏移。
避免了使用Bitmap中setRotate中旋转覆盖且出现黑边的问题。
主要核心方法如下:
//保存canvas
myCanvas.save();
//平移
myCanvas.translate(r / 2, r / 2);
//旋转
myCanvas.rotate(startDegrees + i * det);
//贴图
myCanvas.drawBitmap(bt, -w / 2, -h / 2, paint);
//恢复canvas
myCanvas.restore();
运行截图为:
写好的demo免费下载地址为:点击打开链接,下载