Android konwersji px do Dp (proporcje wideo) [duplikat]

Możliwy duplikat:
konwersja pikseli na dp w Androidzie

Próbuję przekonwertować piksele na dp. Jaka jest formuła?

Konwertujemy 640 i 480 na dp. Docs say this

Konwersja jednostek dp na piksele ekranu jest prosta: px = dp * (dpi / 160)

Ale nie sądzę, że tego potrzebuję (i nie wiem, jak tego użyć). Chyba potrzebuję forumla. Mam gotowy kod:

DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);

    switch(metrics.densityDpi)
    {
         case DisplayMetrics.DENSITY_LOW:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_MEDIUM:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_HIGH:
         int sixForty = ?
         int fourEighty = ?
         break;
    }
Author: Community, 2011-07-12

1 answers

Zamiast próbować wywnioskować Współczynnik konwersji dp z klasyfikacji gęstości ekranu, możesz po prostu zapytać go bezpośrednio:

getWindowManager().getDefaultDisplay().getMetrics(metrics);
float logicalDensity = metrics.density;

LogicalDensity będzie zawierać czynnik, który należy pomnożyć przez dp, aby uzyskać fizyczne wymiary w pikselach ekranu urządzenia.

int px = (int) Math.ceil(dp * logicalDensity);
 72
Author: mportuesisf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-07 23:07:02