具体原理我真的不知道是什么,因为matrix类设计到矩阵相乘之类的知识,没研究清楚,全靠穷举法试出来的,如果读者知道其原理很希望和你交流经验。
我只贴出最关键的几行代码:
Bitmap a; //之下省略一系列的引用声明
...
Matrix matrix = new Matrix();
matrix.setTranslate(X, Y); //设置图片的旋转中心,即绕(X,Y)这点进行中心旋转
matrix.preRotate(degree, (float)a.getWidth()/2, (float)a.getHeight()/2); //要旋转的角度
canvas.drawBitmap(a, matrix, null);
如果不是很想知道具体代码的原理,那么就照葫芦画瓢的写吧,通过改变X,Y和degree的值,可以使图片绕点(X,Y)旋转degree度。