调整Android中的ImageView大小并旋转

时间:2014-04-22 15:08:58

标签: android image matrix rotation

我动态生成ImageView。我想改变它的大小来制作一个正方形,然后旋转它。结果就是这样:

开始时:

At the beging

长按图像查看。我将hight等于widht,然后改变背景以注意它:

enter image description here

A Seek Bar Apears设置旋转度,当我改变它时:

enter image description here enter image description here

当我开始旋转时,原始图像的位置发生变化,我不知道为什么。

代码:

//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我试图根据旋转设置图像的大小。所以我不知道我无法重新定位原始图像。

0 个答案:

没有答案