我动态生成ImageView。我想改变它的大小来制作一个正方形,然后旋转它。结果就是这样:
开始时:
长按图像查看。我将hight等于widht,然后改变背景以注意它:
A Seek Bar Apears设置旋转度,当我改变它时:
当我开始旋转时,原始图像的位置发生变化,我不知道为什么。
代码:
//selectedImage its the imageView in wich you do a long click
img.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
selectImg = (ImageView) v;
selectImg.getLayoutParams().height = selectImg.getWidth();
selectImg.setBackgroundColor(Color.GREEN);
seekBar.setVisibility(VISIBLE);
return false;
}
});
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
int w = selectImg.getWidth();
int h = selectImg.getHeight();
selectImg.setScaleType(ImageView.ScaleType.MATRIX);
Matrix matrix = new Matrix();
matrix.postRotate(seekBar.getProgress(),w/2 , h/2);
selectImg.setImageMatrix(matrix);
field.invalidate();
}
问题在于,由于这种位置变化,de旋转中心不在原始图像的中间位置。我的想法是拥有完全相同的图像但旋转。问题是,为什么这种位置变化会发生?我该如何解决? 我现在需要知道beacouse我试图根据旋转设置图像的大小。所以我不知道我无法重新定位原始图像。