Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для мобильных телефонов > Android

Android Разработка игр на платформе Android

Ответ
 
Опции темы
Старый 04.02.2014, 15:03   #1
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
Method deprecated - и что теперь?

такая простая вещь как попытка узнать разрешение экрана не из активити привела к странным для меня результатам.
public static void init() {
        
//...
        
WindowManager wm = (WindowManagercontext.getSystemService(
            
Context.WINDOW_SERVICE);
        
Display d wm.getDefaultDisplay();
        
scr_w d.getWidth();
        
scr_h d.getHeight();
    } 
eclipse говорит, что метод getWidth() отныне deprecated. начиная с API13 (3.2) надо использовать getSize.

итого: в версии API7(2.1) нет метода getSize, а в версии API13 (3.2) нет методов getWidth, getHeight. что делать, если я хочу, чтобы программа работала во всех версиях API, начиная с 2.1 и заканчивая 4.4?
__________________
to be or not to be - it's not a question!
2b or not 2b = ff
(Offline)
 
Ответить с цитированием
Старый 04.02.2014, 15:25   #2
Dark Dragon
Оператор ЭВМ
 
Аватар для Dark Dragon
 
Регистрация: 13.10.2012
Адрес: Российская Федерация,г.Челябинск.
Сообщений: 41
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Method deprecated - и что теперь?

Возможно есть способ распознания версии API (чтобы ты не имел в виду под этим). Тогда можно вынести отдельно процедуру в которой условный оператор выбирает между этими двумя методами.
__________________
P.S.: Если что я этого не говорил
(Offline)
 
Ответить с цитированием
Старый 04.02.2014, 15:41   #3
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,374
Написано 489 полезных сообщений
(для 882 пользователей)
Ответ: Method deprecated - и что теперь?

Для проверки старых ондроедов я использую код:
boolean old = (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB);
для получения размеров экрана:
DisplayMetrics dis = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(dis);
width = dis.widthPixels;
height = dis.heightPixels;
никаких деприкейтедов, всё чОтко
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
barsunduk (04.02.2014)
Старый 04.02.2014, 15:48   #4
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
Ответ: Method deprecated - и что теперь?

Сообщение от Жека Посмотреть сообщение
...никаких деприкейтедов, всё чОтко
спасибо! получил ответы на оба, волновавших меня вопроса.
а "узнать разрешение экрана не из активити" - это уже с жиру бешусь.
__________________
to be or not to be - it's not a question!
2b or not 2b = ff
(Offline)
 
Ответить с цитированием
Старый 04.02.2014, 15:55   #5
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 05.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 637 пользователей)
Ответ: Method deprecated - и что теперь?

Для таких случаев я обычно создаю класс ApiResolver, в котором хранятся методы, объединяющие старый и новый способ. Вот пример:
public class ApiResolver {
	private static final int SDK_VERSION = Build.VERSION.SDK_INT;
	
	public static class Drawable {
		@SuppressWarnings("deprecation")
		@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
		public static void setBackground(View view, android.graphics.drawable.Drawable background) {
			if (SDK_VERSION >= Build.VERSION_CODES.JELLY_BEAN)
				view.setBackground(background);
			else
				view.setBackgroundDrawable(background);
		}
	}
	
	public static class Display {
		@SuppressWarnings("deprecation")
		@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
		public static Point getSize(android.view.Display display) {
			Point result = new Point();
			if (SDK_VERSION >= Build.VERSION_CODES.HONEYCOMB_MR2) {
				display.getSize(result);
			} else {
				result.x = display.getWidth();
				result.y = display.getHeight();
			}
			return result;
		}
	}
}
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Romanzes за это полезное сообщение:
barsunduk (04.02.2014), Жека (04.02.2014)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 13:25.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com