если Custom View
размера 500w*600h
в dp
, остаются такими же, как px
в (1152w*720h)px
экранах Android, то, что будет просматривать размеры в dp
и px
на экране (480w*600h)px
экранов. И как рассчитать для разных размеров View.Определить дп размеры в разных экранах
ответ
Отношение dp/px зависит от плотности экрана устройства.
Я бы рекомендовал вам ознакомиться с документами Android по этому вопросу.
http://developer.android.com/guide/practices/screens_support.html
Каждая классификация плотности экрана имеет определенный пикс множитель, связанный с ним т.е. MDPI = рх * 1 и ИПЧР = рх * 1,5
Вот хороший маленький калькулятор, чтобы помочь вам разобраться это:
Предполагая, что вы определили ваши размеры вид в дп (так же, как провал), вы можете использовать получить экземпляр DisplayMetrics для преобразования дп к фактическому PIXE ls для вашего текущего устройства.
Удобная функция, которую вы можете добавить в служебный класс для занятий преобразования:
private static float dipToPixels(Context context, int dip)
{
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, metrics);
}
. Я говорю о размере пользовательского вида здесь, контекст не существует для пользовательские представления, поэтому DisplayMetrics бесполезен! –
1. В пользовательском представлении вы имеете в виду некоторый класс, который расширяет android.view.View? 2. Вы пытаетесь вычислить правильные значения в Runtime или создавать жестко заданные значения, которые вы подключаете к файлам макета xml на основе размера экрана? –
я читал, эти статьи, но не смог преобразовать эти значения в коде андроида. поэтому задал вопрос об этом. –
Я смущен, что это точно, что вы не понимаете? У меня есть ощущение, что это плотность экранов (более высокая плотность = больше пикселей), поэтому нет прямого преобразования, это зависит от плотности экрана –