Пиксель тығыздығы дегеніміз не?
AI-дан жауап
sobes.tech AI
Пиксель тығыздығы (density) — бұл физикалық пиксельдердің санын экранда көрсетілетін пиксельдер санына (dp немесе dips) қатынасы. Ол экранның дюйміне (dpi) шаққандағы пиксельдердің санын көрсетеді. Жоғары тығыздық бір дюймге көп пиксельдер бар екенін білдіреді.
Android density-ті UI элементтерін масштабтау үшін пайдаланады, осылайша олар әртүрлі тығыздықтағы экрандарда шамамен бірдей физикалық өлшемде көрінеді.
Android-те негізгі тығыздық категориялары:
| Тығыздық категориясы | DPI мәні | Масштаб коэффициенті |
|---|---|---|
| ldpi | ~120 | 0.75 |
| mdpi | ~160 | 1.0 |
| hdpi | ~240 | 1.5 |
| xhdpi | ~320 | 2.0 |
| xxhdpi | ~480 | 3.0 |
| xxxhdpi | ~640 | 4.0 |
dp — бұл mdpi (160 dpi) негізінде есептелген өлшем бірлігі, онда 1 dp = 1 пиксель. Басқа тығыздықтағы экрандарда dp тиісті физикалық пиксельдер санына масштабтау коэффициентін ескере отырып түрлендіріледі.
Мысалы, xhdpi (320 dpi, 2.0 коэффициенті) экранда:
1 dp = 2 физикалық пиксель.
dp-ны px орнына пайдалану макеттердегі өлшемдер мен шекаралардың әртүрлі құрылғыларда біркелкі болуын қамтамасыз етеді. Ресурстар (мысалы, суреттер) әртүрлі тығыздықтарға сәйкес келетін ресурстар қалталарында (res/drawable-mdpi, res/drawable-hdpi және т.б.) беріледі.
// Кодта dp-ны пиксельге айналдыру мысалы
float density = getResources().getDisplayMetrics().density;
int dpValue = 16; // dp мәні
int pixelValue = (int) (dpValue * density); // түрлендіру
<!-- XML макетінде dp қолдану мысалы -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="16dp"
android:textSize="18sp" /> <!-- шрифт үшін sp (масштабталған пиксельдер) пайдаланылады, ол пайдаланушының шрифт параметрлерін де ескереді -->