sto lavorando su Android api8. Voglio posizionare/posizionare una vista sullo schermo in modo dinamico. ma per usare setX e setY abbiamo bisogno dell'API 11 e superiori. come possiamo usarlo in API 8 o c'è qualche alternativa per questo? bisogno di aiutoAndroid - Uso di view.setX() e setY in api 8
risposta
È possibile farlo utilizzando il LayoutParams
. Questi possono essere aggiunti ai componenti dell'interfaccia di Android per impostare i loro limiti e posizione.
Un esempio (l'impostazione dei LayoutParams su una visione figlio di un RelativeLayout)
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); //The WRAP_CONTENT parameters can be replaced by an absolute width and height or the FILL_PARENT option)
params.leftMargin = 50; //Your X coordinate
params.topMargin = 60; //Your Y coordinate
childView.setLayoutParams(params);
Si precisa che per il tipo di LayoutParams deve essere uguale al genitore del childview che si desidera aggiungere alla loro. (LinearLayout.LayoutParams
per un LinearLayout
, RelativeLayout.LayoutParams
per un RelativeLayout
ecc.).
Inoltre, invece di childView.setLayoutParams(params);
è possibile utilizzare parentView.addView(childView,params);
per impostare i Layoutparam quando l'elemento viene aggiunto al contenitore padre.
NOTA! I valori per le coordinate sono in pixel. Dal momento che è buona norma utilizzare i valori DP per definire le dimensioni di interfaccia è possibile utilizzare questo pezzo di codice per convertire dp ai pixel:
private int getPixels(int dipValue){
Resources r = getResources();
int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, r.getDisplayMetrics());
return px;
}
Aditionally sopra (risposta di Leon Lucardie) se la vista è un GroupView e quando il suo essere supposta i bordi vista di andare al di fuori dello schermo, si hanno anche per mettere:
params.rightMargin=currentRightMargin -yourX;
params.bottomMargin=currentBottomMargin -yourY;
per evitare distorsioni all'interno il layout interno di vista
È possibile utilizzare http://nineoldandroids.com/ e avere il supporto API dal livello 1, in questo modo :
ViewPropertyAnimator.animate(view).translationYBy(-yourY).setDuration(0);
- 1. Android setX() e setY() si comportano in modo strano
- 2. API Java 8 Stream in Android N
- 3. Uso di color e color.darker in Android?
- 4. Android: Howto uso clipRect in API15
- 5. Problema dell'altezza RecyclerView in API 17 e API 16 - Android
- 6. Java 8 New Date API è disponibile in Android N?
- 7. Uso di onDestroy() in android
- 8. Join in Java 8 API di raccolta
- 9. Perché RingtoneManager.setActualDefaultRingtoneUri non ha potuto funzionare? [Android API-8]
- 10. Utilizzando Loader API 8
- 11. API Java 8 Collectors
- 12. Uso di NDK Android
- 13. Ruota visualizzazione annuncio con API 8
- 14. Java 8 lambda api
- 15. Windows Phone 8 - API private?
- 16. Crash in iOS: XPC API Uso improprio
- 17. Ottenere tutti gli amici utente Uso Facebook Graph API - Android
- 18. Equivalente all'intervallo jodatime in Java 8 API Data e ora
- 19. Uso di esempio di RtpStream su Android
- 20. Uso NSUserDefaults con Xcode 8 e iOS 10
- 21. Dove uso _endthreadex - windows API
- 22. Funzioni ANSI API di Windows e UTF-8
- 23. Criteri JPA2 e Java 8 Data e ora API
- 24. Uso API Forecast.io con jQuery
- 25. Java 8 funziona su Android API 24 e versioni successive Oppure è possibile utilizzare in api inferiori?
- 26. Uso di AND e OR in SQLite
- 27. Android Facebook API e ShareLinkContent
- 28. Java 8 Data Time api in JPA
- 29. Google map API in Windows Phone 8
grazie Leon, è esattamente ciò di cui ho bisogno. Grazie! – manojmore
@manojmore puoi inviarmi codice demo per questo. Ho provato questo, ma non ho ottenuto il risultato. Qualcosa non va, penso. –
sono questi valori in DP o Pixel? –