Использую SurfaceView
, рисую на Canvas
в отдельном потоке. Необходимо получить из ресурса VectorDrawable
, задать поворот и нарисовать на Canvas
, потом изменить угол поворота и снова нарисовать на Canvas
.
Ресурс получаю, но методов для вращения у VectorDravable
нет.
Пробовал привести к RotateDrawable
:
RotateDrawable rd = (RotateDrawable) context.getResources().getDrawable(R.drawable.ic_arrow);
Приложение падает. Как быть?
Можно вращать не изображение, а канвас, с помощью метода .rotate(угол_в_градусах)
:
canvas.save(Canvas.MATRIX_SAVE_FLAG); // сохраняем состояние канваса, чтобы в конце восстановить его
canvas.rotate(-angle);
drawable.draw(canvas);
canvas.restore();
Вероятно, также потребуется задать центр вращения, вызвав .translate(delta_x, delta_y)
Для обычных Bitmap
также можно использовать перегрузку метода drawBitmap
, которая принимает матрицу преобразования:
Matrix matrix = new Matrix();
matrix.setRotate(угол, x_координата_центра_вращения, y_координата_центра_вращения);
canvas.drawBitmap(bitmap, matrix, null);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Добрый деньПерешел на новую работу, работа заключается в интеграции с системой SAP ERP
Реально ли написать, чтобы при поиске выводилось несколько запросов с разных таблиц, ибо таблицы соединить нечем, а результаты поиска должны...