Какая единица измерения использует Paint.setStrokeWidth() и нужно ли масштабировать это значение на основе текущей плотности экрана?Какая единица измерения использует Paint.setStrokeWidth()?
Это значение поплавка, поэтому я знаю, что это не количество пикселей. Это должно быть относительно чего-то.
Это вся документация говорит, как из этого письма:
Установите ширину для поглаживания. Пройдите 0 до хода в режиме волоса. Волосы всегда рисуют один пиксель, независимо от матрицы canva.
Привет Romain, я попытался пример PathEffect из ApiDemos и ширина хода устанавливается в 6 там. Когда я измеряю ширину на экране мобильного телефона hdpi, это 9 пикселей. Похоже, что начальное значение ширины штриха умножается на плотность. Должен ли я предоставить значение, деленное на плотность, чтобы получить реальную ширину? – Zzokk
Я не верю, что ответ Ромена верен. На моем текущем тестовом устройстве (HTC One X, с плотностью 2,0) я обнаружил, что '.setStrokeWidth()' необходимо вызвать с желаемой шириной штриха, разделенной на 1,5. Тогда ширина точно такая же, как и должна быть. В противном случае он слишком широк. Коэффициент 1.5 согласуется точно с тем, что Zzokk нашел (6px vs 9px), за исключением того, что я задаю вопрос, связан ли он с плотностью, потому что One X равен 2.0, а не 1.5. Итак, начало этого фактора в 1.5 раз меня озадачивает. – Trevor
Черт! Я просто пришел сюда, чтобы решить это сомнение. Я видел, как @Romain Guy отвечал, и я подумал: «У нас есть ответ наверняка», но в комментариях это выглядит не так просто. В любом случае я попытался справиться с этим, как если бы там, где пиксели, такие как преобразование из dp в пиксели ... и, похоже, работают для разных размеров экрана ... – Sotti