6
votes

Dessin "Drawables" à une toile dans des unités DP

J'essaie de comprendre s'il existe un moyen de dessiner des bitmaps sur la toile dans des unités DP au lieu de pixels. Par exemple: le code suivant échoue au 100 * 100 px. Comment puis-je changer plutôt que c'est 100 * 100 dp?

int lengthPos = 10;
int heightPos = 10
mImage.setBounds(lengthPos, heightPos, (lengthPos + 100), (heightPos + 100));
mImage.draw(c);


0 commentaires

3 Réponses :


1
votes

Vous ne pouvez pas directement, mais vous pouvez convertir entre px et dp. Voir la réponse dans ce Stackoverflow Post pour plus de détails.


0 commentaires

8
votes

Le rapport DP / DX est égal à votre appareil DPI / 160, vous pouvez donc calculer facilement les creux de cette manière.

Utilisez P>

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float density = dm.density


0 commentaires

5
votes
float dps = 100;
float pxs = dps * getResources().getDisplayMetrics().density;
Source (@Romain Guy)

0 commentaires