Estoy trabajando en Android api8. Quiero posicionar/colocar una vista en la pantalla de forma dinámica. pero para usar setX y setY necesitamos API nivel 11 y superior. ¿cómo podemos usarlo en API 8 o hay alguna alternativa para esto? necesita ayudaAndroid - Uso de view.setX() y setY en api 8
Respuesta
Puede hacerlo utilizando el LayoutParams
. Estos se pueden agregar a los componentes de la interfaz de Android para establecer sus límites y posición.
Un ejemplo (ajuste de los LayoutParams en una visión de un niño 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);
tomar en cuenta que el tipo de los LayoutParams debe ser igual a la matriz de la childview desea agregar a. (LinearLayout.LayoutParams
para un LinearLayout
, RelativeLayout.LayoutParams
para un RelativeLayout
etc.).
Además, en lugar de childView.setLayoutParams(params);
también puede usar parentView.addView(childView,params);
para establecer los Layoutparams cuando el elemento se agrega al contenedor principal.
NOTA! Los valores de las coordenadas están en píxeles. Puesto que es la mejor práctica de utilizar los valores DP para definir el tamaño de la interfaz podría utilizar este pedazo de código para convertir dp de píxeles:
private int getPixels(int dipValue){
Resources r = getResources();
int px = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, r.getDisplayMetrics());
return px;
}
Adicionalmente anteriormente (la respuesta de Leon Lucardie) si la vista es un GroupView y cuando su se supone que la vista bordes para ir fuera de la pantalla, también tiene que poner:
params.rightMargin=currentRightMargin -yourX;
params.bottomMargin=currentBottomMargin -yourY;
para evitar distorsiones en el diseño interior de vista
puede utilizar http://nineoldandroids.com/ y tienen soporte para la API desde el nivel 1, de esta manera :
ViewPropertyAnimator.animate(view).translationYBy(-yourY).setDuration(0);
- 1. Girar vista de anuncio con API 8
- 2. Cómo usar Base64 (incluido en Android desde la api 8 (2.2)) en un proyecto Android api 3 (android 1.5)?
- 3. Mimic Context.getExternalFilesDir() antes de Android API Nivel 8?
- 4. El uso de la API de Google Places en Android
- 5. Android: Uso de PopupMenu en el nivel de API 9
- 6. Uso de Google docs API para OCR en Android
- 7. suscripción a Android y API de Google
- 8. Funciones API ANSI de Windows y UTF-8
- 9. Cómo hacer android: background = "? Android: attr/seleccionableItemBackground funciona en API nivel 8
- 10. conversión UTF-8 en Android?
- 11. ¿Cómo uso la API no oficial de Android Market?
- 12. ¿Cómo uso la API privada de Android PowerProfile?
- 13. Windows 8 voz a texto y texto a voz API
- 14. ¿Cómo registro mi cuenta de Google en el emulador de Android ejecutando 2.2 api nivel 8?
- 15. Uso de ResultReceiver en Android
- 16. Dropbox api en Android
- 17. API de Flickr en Android?
- 18. Windows 8 - Fancy Progress Bars API?
- 19. Cómo usar la clase CalendarContract en el nivel de la API 8
- 20. ¿A qué plataforma Android y API dirigirse?
- 21. Uso de URL limpias en API RESTful
- 22. Streaming con Android MediaPlayer en SDK 8
- 23. UTF-8 ilegible en phonegap android
- 24. Uso de `onPrepareOptionsMenu()` en Android 3.0+
- 25. Android XmlPullParser UTF-8 problema
- 26. WinRT y WPF en Windows 8
- 27. Android API de Go
- 28. API/Fuentes de datos: vinculación y pago por uso
- 29. Google Place API limitaciones de uso y facturación
- 30. Uso de Groovy en Android
gracias Leon, eso es exactamente lo que necesito. ¡Gracias! – manojmore
@manojmore me pueden enviar un código de demostración para esto. Intenté esto pero no obtuve el resultado. Creo que algo está mal. –
son estos valores en DP o Píxeles? –