Как я могу повернуть дисплей часов на переменную степень?

Я хотел бы поворачивать дисплей своих часов на переменный угол, как это делает компас в реальной жизни? Пока я обнаружил эту функцию только в API Samsung.

screen.lockOrientation("portrait-secondary");

Я хотел бы больше контроля, чем это, если это означает использование собственного API, это нормально, но мне нужна помощь, где искать.


person Bob Saget    schedule 22.08.2018    source источник
comment
Привет, @Bob Saget, тебе помог мой ответ? Никакого ответа от вас до сих пор.   -  person Shaswati Saha    schedule 03.09.2018
comment
Да, я думаю, что это сработает, у меня возникли проблемы с пониманием концепции карты, но похоже, что функция принимает входные данные, которые позволят мне вращаться по оси x в различной степени. Спасибо, я бы не нашел это.   -  person Bob Saget    schedule 04.09.2018


Ответы (1)


Вы можете попробовать использовать функцию evas_map_util_rotate() для поворота объекта. Он поворачивает карту на основе угла и координат центра поворота (точки поворота). Положительный угол поворачивает карту по часовой стрелке, а отрицательный угол поворачивает карту против часовой стрелки.

Пожалуйста, ознакомьтесь с разделом Изменение карты с помощью служебных функций в по этой ссылке. Он содержит пример, который показывает, как повернуть объект вокруг его центральной точки на 45 градусов по часовой стрелке.

Вы также можете использовать приведенный ниже образец кода.

 @param[in] object_to_rotate The object you want to rotate
 @param[in] degree The degree you want to rotate
 @param[in] cx The rotation's center horizontal position
 @param[in] cy The rotation's center vertical position

void view_rotate_object(Evas_Object *object_to_rotate, double degree, Evas_Coord cx, Evas_Coord cy)
{
    Evas_Map *m = NULL;

    if (object_to_rotate == NULL) {
        dlog_print(DLOG_ERROR, LOG_TAG, "object  is NULL");
        return;
    }

    m = evas_map_new(4);
    evas_map_util_points_populate_from_object(m, object_to_rotate);
    evas_map_util_rotate(m, degree, cx, cy);
    evas_object_map_set(object_to_rotate, m);
    evas_object_map_enable_set(object_to_rotate, EINA_TRUE);
    evas_map_free(m);
}

Надеюсь, это поможет.

person Shaswati Saha    schedule 28.08.2018