Как вращать колесо (изображение PNG) в Android - PullRequest
1 голос
/ 17 декабря 2011

Я хочу повернуть изображение PNG на линейном макете.Мое изображение имеет форму полукруга и имеет разные цвета.

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 17 декабря 2011

Используя Matrix, вы можете сделать это,

Что-то вроде,

img=(ImageView)findViewById(R.id.ImageView01);
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.refresh);
// Getting width & height of the given image.
int w = bmp.getWidth();
int h = bmp.getHeight();
// Setting post rotate to 90
Matrix mtx = new Matrix();
mtx.postRotate(90);
// Rotating Bitmap
Bitmap rotatedBMP = Bitmap.createBitmap(bmp, 0, 0, w, h, mtx, true);
BitmapDrawable bmd = new BitmapDrawable(rotatedBMP);

img.setImageDrawable(bmd);

ИЛИ Использовать анимацию

RotateAnimation rAnim = new RotateAnimation(0, 359, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
rAnim.setDuration(1000);
imageview.startAnimation(rAnim);

РЕДАКТИРОВАТЬ: Посмотрите наэтот вопрос также Как сделать плавное вращение изображения в Android?

Анимация и поворот изображения в режиме просмотра поверхности

3 голосов
/ 17 декабря 2011

может быть полезно для вращения изображения .......

 RotateAnimation rotate = new RotateAnimation(180, 360, Animation.RELATIVE_TO_SELF, 0.5f,  Animation.RELATIVE_TO_SELF, 0.5f);
 rotate.setDuration(500);
 imageview.startAnimation(rotate);

первые два параметра для начала и конца градуса.

1 голос
/ 17 декабря 2011

Это то, что я сделал, таймер вызывает метод pondraw через каждые 100 микросекунд h, w - высота и ширина изображения

                    new CountDownTimer(2000, 100) {

        public void onTick(long millisUntilFinished) {
            degrees=degrees +(rm.nextFloat()*100);
            postInvalidate();
        }

        public void onFinish() {

        }
    }.start();

поместите этот код в метод ondraw

Matrix m = new Matrix();
m.setRotate(degrees,w/2,h/2);
    bmp=BitmapFactory.decodeResource(context.getResources(),R.drawable.wfortune_wheel);
canvas.drawBitmap(bmp, m, pb);

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...