У меня есть изображение на двух разных устройствах с разным размером и плотностью экрана.Нарисуйте один и тот же круг на одном изображении на двух разных устройствах (различная плотность экрана)
Используя холст, я хочу нарисовать круг на устройстве. Изображение, затем отправьте координаты центра на устройство B и нарисуйте круг в том же положении, даже если одно и то же изображение имеет другой размер.
Что делать на устройстве перед отправкой х координат следующее:
float density = getResources().getDisplayMetrics().density;
int width = getWidth();
float inchesLength = width/density;
float scaledXCenter = xCenter/inchesLength;
я сделать то же самое для координаты у.
На устройстве В, я получаю те же параметры и умножить полученные координаты для inchesLenght:
float density = getResources().getDisplayMetrics().density;
int width = getWidth();
float inchesLength = width/density;
float restoredXCenter = scaledXCenter * inchesLength;
Я проверяю это на AVDS. Проблема заключается в том, что каждый AVD имеет плотность экрана 1, даже если я четко вижу, что на меньшем устройстве (устройство A) одно и то же изображение полностью отображается, но занимает меньшее пространство!
Должен ли этот подход работать при работе с реальными устройствами?
Есть ли лучший способ сделать это?