У меня есть серьезная проблема, над которой я работаю уже несколько дней. Это очень понятно, если сначала взглянуть на это требование. Я изложу свое требование как можно проще в виде точечной формы ниже.Графика для Android: рисование кругов такого же размера
- У меня есть 5 телефонов android. 5 различных марок, разные размеры экрана.
- Представьте себе размеры экрана 4inch, 4.5inch, 5inch, 5.1inch и 5.2inch
- У меня есть приложение для Android и у него есть холст для рисования.
- Теперь с использованием
canvas.drawCircle(x/2, y/2, radius, paint)
Я рисую круг. Представьте себе, что радиус равен 100 (100 пикселей?) - Я устанавливаю это приложение на своем маленьком экране телефона, 4 дюйма. Затем я использую линейку и измеряю диаметр круга. Представьте, что диаметр круга «точный» 3 см.
- Теперь я устанавливаю это на других телефонах.
- К сожалению, в моем 4,5-дюймовом телефоне диаметр круга составляет 3,2 см. В 5-дюймовом телефоне - 3,3 см. В 5,1-дюймовом телефоне это 2,8 см и так далее.
- Однако я хочу, чтобы мой диаметр круга был 3 см (точный 3 см) в каждом телефоне.
Выше требования - это то, что я пытаюсь в течение нескольких дней. Я попробовал следующее, чтобы убедиться, что я получаю круг без изменения размера на всех экранах.
- Использование
ImageView
- Я попытался с помощьюImageView
и добавил круг изображение. Я дал ширину, высоту фиксированную. Я попытался установить значения вpx
,dp
,inches
и т. Д. Я также пробовалscalling
опции дляImageView
. Также попытался разместить одно и то же изображение в папкеdrawable-nodpi
. Пробовал создавать доступные папки для всех размеров (например: drawable-mdpi, drawable-hdpi). Не исключено, что изображение было масштабировано. - Использование Canvas - Как объяснялось выше, я попытался использовать холст и нарисовать изображение. Чертежи рисунка.
- Поиск пикселей на дюйм .- Пробовал поиск пикселей на дюйм каждого телефона, программно мыслящего, я могу найти способ разработать из него логику, чтобы динамически рисовать изображения одного размера. Я использовал несколько ссылок, включая: Calculate PPI of Android Device. Большинство из них говорят о получении разрешения экрана.
Как я могу выполнить свое требование рисовать круги одинакового размера? Если это можно сделать, зная ИЦП, как мне это сделать?
Таким образом, приведенный выше код предназначен для? –
его изменяющееся целое число с числом 'COMPLEX_UNIT_MM' (миллиметров) на пиксели (всегда). – snachmsm
Я имею в виду пикселы на дюйм? –