#android
#Android
Вопрос:
Я использую Display.getRefreshRate () для получения частоты обновления моего дисплея. В X10 Mini возвращаемое значение равно 0,325. В Galaxy S значение равно 68.0. Для меня это не имеет никакого смысла. Есть идеи?
Комментарии:
1. 1 developer.android.com/reference/android/view / … определяет количество кадров в секунду. Тем не менее, мой Galaxy Ace выдает мне
0.34
0,34 кадра в секунду!? Я могу листать комиксы быстрее, чем эта скорость.2. 1 Я обнаружил то же самое! Мой Xperia Pro выдает значение <1.0. Imo это действительно неаккуратная ошибка со стороны производителей телефонов!
3. Подтверждаю, что это в некотором роде ошибка. Для моего LG Optimus Chic он возвращает значение 0.054, которое не имеет никакого смысла. Даже если бы это была доля секунды между одним кадром и следующим, это привело бы к 18,5 кадрам в секунду, в то время как производитель сообщает о 30 кадрах в секунду для этого конкретного смартфона.
Ответ №1:
Похоже, это ошибка, хотя я не нашел никаких отчетов об ошибках для нее. Число, которое я получаю, также равно ~ 0.34, в то время как я ожидал что-то вроде 60. Мне не удалось найти осмысленную интерпретацию 0.34 в отношении refreshrates, и поэтому мое решение состояло в том, чтобы просто «отклонить его истинность и заменить моим собственным» следующим кодом:
public float getRefreshRate() {
final WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
final Display display = wm.getDefaultDisplay();
float rate = display.getRefreshRate();
if (rate < 10.0f) {
rate = 60.0f; //Default to something which seems to be a normal refreshrate on many phones
}
return rate;
}
Это отлично работает в моем приложении. Надеюсь, это было полезно!