我想围绕一个点旋转一个imageview。 imageview指的是一个可绘制的资源。
然后我将imageview转换为位图,以便我可以在画布上绘制它。
在this的帮助下,我能够在画布上绘制可绘制的
imageView = new ImageView(this);
imageView.setImageResource(drawable);
imageView.setDrawingCacheEnabled(true);
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
imageView.layout(0, 0, imageView.getMeasuredWidth(), imageView.getMeasuredHeight());
imageView.buildDrawingCache(true);
Matrix matrix = new Matrix();
matrix.setRotate(30,x, y);
canvas.drawBitmap(imageView.getDrawingCache(), matrix, paint);
矩阵不起作用。图像在x,y点处不旋转。
有人能告诉我我的代码中缺少什么吗?
答案 0 :(得分:0)
首先在该点处平移(固定)矩阵,然后相应于该点旋转。
Matrix matrix = new Matrix();
matrix.setTranslate(x,y);
matrix.postRotate(30,x, y);
canvas.drawBitmap(imageView.getDrawingCache(), matrix, paint);