Как нарисовать графический элемент, чтобы его размер всегда оставался одинаковым на каждой машине? - PullRequest
0 голосов
/ 28 октября 2011

Мне нужно нарисовать квадрат одинакового размера на каждом устройстве. Я планирую нарисовать графическую кнопку, и я не хочу, чтобы она была намного меньше (или больше), чем средний палец.

Есть ли способ убедиться, что элемент, который я рисую (в данном случае квадрат), не будет изменен? Мне нужно, чтобы он был всегда одинакового размера в сантиметрах на дюймах.

С уважением,

М.К.

Ответы [ 3 ]

1 голос
/ 28 октября 2011

Каждое устройство имеет свою плотность экрана. Android позволяет указывать размеры вашего вида в:

dp: Плотность-независимые пиксели - абстрактная единица измерения, основанная на физической плотности экрана. Эти единицы относятся к экрану 160 точек на дюйм (точек на дюйм), поэтому 160 точек на дюйм - это всегда один дюйм, независимо от плотности экрана. Отношение dp к пикселю будет меняться в зависимости от плотности экрана, но не обязательно в прямой пропорции. Эти единицы измерения следует использовать при указании размеров вида в макете, чтобы пользовательский интерфейс правильно масштабировался для отображения одного и того же фактического размера на разных экранах. (Компилятор принимает и «dip», и «dp», хотя «dp» более соответствует «sp».)

sp: Пиксели, не зависящие от масштаба - это похоже на единицу измерения dp, но также масштабируется в соответствии с предпочтениями размера шрифта пользователя. Рекомендуется использовать этот блок при указании размеров шрифта, чтобы они были отрегулированы как по плотности экрана, так и по предпочтениям пользователя.

pt: Точки - 1/72 дюйма в зависимости от физического размера экрана.

px: Pixels - соответствует фактическим пикселям на экране. Эта единица измерения не рекомендуется, потому что фактическое представление может варьироваться в зависимости от устройства; у каждого устройства может быть разное количество пикселей на дюйм и общее количество пикселей на экране может быть больше или меньше.

мм: Миллиметры - в зависимости от физического размера экрана.

in: Inches - в зависимости от физического размера экрана.

Например:

<View
    android:layout_width:"10dp"
    android:layout_height:"10dp"
    android:background:"#FFFFFF"
/>

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

0 голосов
/ 28 декабря 2011

Для этого и создан блок DP.

Это очень интересная лекция, в которой также показано, что происходит, если вы используете px вместо dp: вы получаете разные размеры интерфейса на разных устройствах.:

http://developer.android.com/guide/practices/screens_support.html

(конкретный абзац Плотность независимости )

Вы также можете взглянуть на атрибуты Android android:minWidthи android:minHeight

0 голосов
/ 28 октября 2011

на каждом устройстве вычислите размеры графики как: высоту / плотность, ширину / плотность и другие ваши размеры

...