2013-02-25 7 views
11

voglio usare la funzione activity.getWindowManager(). GetDefaultDisplay(). GetWidth(), ma c'è un avviso che dice che questa funzione è deprecatoAndroid: cosa devo fare invece di utilizzare una funzione deprecata (getwidth())?

Cosa devo fare? Dovrei comunque usare questa funzione? o ci sono altre funzioni che fanno lo stesso?

+0

deprecato significa che è vecchio e che è ancora supportata, ma è stato sostituito da una funzione nuova e migliore ed è probabile che venga sostituito nelle future edizioni della libreria. puoi usarlo se vuoi, ma è meglio cercare la funzione con cui è stato sostituito. –

+7

hai fatto qualche tipo di ricerca prima di fare la domanda? – njzk2

+1

http://stackoverflow.com/questions/8111774/deprecated-meaning – zch

risposta

26

obsolete significa che non dovrebbe essere usato, ma è ancora lì per motivi di compatibilità.

Si dovrebbe usare invece:

Point size = new Point(); 
activity.getWindowManager().getDefaultDisplay().getSize(size); 
int width = size.x; 
int height = size.y; 
1

Le funzioni deprecate sono quelle funzioni delle quali sono state introdotte nuove alternative migliori e in futuro potrebbero non essere supportate nelle nuove API. Ma sentitevi liberi di usarli perché ci vuole un sacco di tempo per farli scadere.

+0

Non è esattamente la migliore pratica usare le funzioni deprecate, quindi non incoraggerei l'OP a usarle – QkuCeHBH

+0

Questo è solo secondo i documenti. Ho dozzine di app in esecuzione su numerosi metodi deprecati. Secondo la mia esperienza, questa cosa di deprecazione è solo un avvertimento di scadenza così che gli sviluppatori potrebbero essere incoraggiati a nuovi sviluppi. Per riferimento, dai un'occhiata alle modifiche apportate da Android a thread pool exe. Sei d'accordo con me dopo questo. –

+0

Facci sapere se (quando) "yo cacca rompe": D – Clocker

2

dal riferimento Display API:

int getWidth() 
This method was deprecated in API level 13. Use getSize(Point) instead. 

che significa che sarete un'istanza di un Point, passa a getSize() e recuperare il x da esso.

elemento
3

Un programma annotato @deprecated è uno che i programmatori sono scoraggiato da usare, tipicamente perché è pericoloso, o perché esiste un'alternativa migliore. I compilatori avvisano quando un elemento deprecato del programma viene utilizzato o sovrascritto nel codice non deprecato.

Vedi this e this e this e this e this e così via ............

1

Posiziona il cursore sul nome del metodo e premi F2 per ottenere informazioni sull'ultima API. (Supponendo che si sta utilizzando Eclipse)

0

Prova:

WindowManager windowmanager = (WindowManager) this.getContext() 
           .getSystemService(Context.WINDOW_SERVICE); 

con:

Display display = windowmanager.getDefaultDisplay(); 

Point size = new Point(); 
try { 
    display.getRealSize(size); 
} catch (NoSuchMethodError err) { 
    display.getSize(size); 
} 
int width = size.x; 
int height = size.y; 

o con:

DisplayMetrics displayMetrics = new DisplayMetrics(); 
windowmanager.getDefaultDisplay().getMetrics(displayMetrics); 
int deviceWidth = displayMetrics.widthPixels; 
int deviceHeight = displayMetrics.heightPixels; 
Problemi correlati