imageView.SetRotation(theta)将视图围绕枢轴点居中,并将图像围绕此枢轴旋转θ度,这很好,但是如何旋转图像视图而不首先将其围绕此枢轴居中?
要清除我的问题,想象一下它上面的一块板和一个图像,setRotation做的是在这个图像的中间粘一个别针然后旋转它,我想要的是选择一个转轴 - 说图像的左下角是一个在那里钉,然后旋转它。
希望我的问题很明确,并且可以解决!
谢谢!
答案 0 :(得分:2)
您可以使用以下方式设置新的轴心点:
setPivotY(float pivotY);
setPivotX(float pivotX);
之后,将使用上述方法设置的新枢轴点进行旋转。
- 编辑 -
我使用此方法为我的布局添加ImageView
。
private ImageView addImageView(RelativeLayout mainLayout, int x, int y, int width, int height, OnClickListener onClickListener){
ImageView imageView = new ImageView(this);
imageView.setAdjustViewBounds(false);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.height = height;
params.width = width;
imageView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageDrawable(getResources().getDrawable(R.drawable.marker_red));
params.leftMargin = x - width/2;
params.topMargin = y - height/2;
imageView.setOnClickListener(onClickListener);
mainLayout.addView(imageView);
return imageView;
}
我用这个参数调用了方法:
ImageView imageView;
imageView = addImageView(mainLayout, 200, 300, 200, 200, new OnClickListener() {
@Override
public void onClick(View v) {
imageView.setPivotX(200);
imageView.setPivotY(200);
imageView.setRotation(45);
}
});
最后,您只需单击图像,图像就会旋转45度。
问候