Maison > Questions et réponses > le corps du texte
问题如题描述,设计给的尺寸都是px的,而且也不告诉他们在什么尺寸和分辨率的屏幕上做的设计?作为程序员要如何转换单位?
我不是在问px与dp之间如何转换的问题。而是由设计师的px如何转换成写在xml里的dp的问题。
阿神2017-04-17 18:01:24
非战斗人员请远离, 现在开撕!
Lorsque vous rencontrez une situation comme celle-ci, vous ne pouvez dire qu'à vos artistes (nous ne pouvons pas les appeler ici des designers) : cela ne peut pas être fait !!!
Chaque fois que vous concevez une interface utilisateur d'application, elle doit être conçue avec une résolution standard courante. Ensuite, vous pouvez trouver la densité d'écran correspondante, et enfin vous pouvez convertir px en dpi
Si vous vous écartez de ce principe, cela. est-ce que vous agissez comme un voyou. En fin de compte, votre implémentation sera irréaliste et loin du projet de conception de l'interface utilisateur. Cela ne vous regarde pas.
Référence :Mesures de l'appareil
Méthode de calcul :Après avoir connu la résolution du projet de conception et la densité d'écran à laquelle correspond généralement la résolution, calculez-la selon la formule suivante :
dpi = px / density
p.s. La densité est la valeur de la colonne Densité dans Device Metrics. p.p.s. Ne vous disputez pas avec votre artiste après avoir lu cette réponse au sang chaud. [Admettre lâche] 2333
PHP中文网2017-04-17 18:01:24
Tout d'abord, vous devez savoir quelle est la taille de l'écran dans la conception
Elle est généralement de 1080x1980 (? ou autre), appartient généralement à xxhdpi, c'est-à-dire que 1dp équivaut à 3px
Si le la largeur de l'écran du design n'est que de 480 (ou gauche et droite), alors 1dp devrait être 1px
天蓬老师2017-04-17 18:01:24
1dp est défini comme 1px lorsque la valeur de densité de l'écran est de 160ppi, c'est-à-dire qu'à mdpi, 1dp = 1px. En prenant mdpi comme norme, le rapport de valeur de densité de ces écrans est : ldpi : mdpi : hdpi : xhdpi : xxhdpi = 0,75 : 1 : 1,5 : 2 : 3 ; cas de hdpi, 1dp=1,5px. Autres analogies.
1dp=(écran ppi/160)px
Lien original
PHPz2017-04-17 18:01:24
public static float px2dp (Contexte contexte, float pxVal)
{
final float scale = context.getResources().getDisplayMetrics().density;
return (pxVal / scale);
}
Méthode de conversion : px --->