Obtener el margen de una vista

¿Cómo puedo obtener el valor de margen de una vista de una actividad? La vista puede ser de cualquier tipo.

Después de un poco de búsqueda descubrí maneras de conseguir relleno de una vista, pero no pude encontrar nada en Margin. ¿Alguien puede ayudar?

He intentado algo como esto,

ViewGroup.LayoutParams vlp = view.getLayoutParams(); int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin; 

Esto funciona, pero en el código anterior he asumido que la vista es LinearLayout . Pero necesito conseguir el atributo del margin incluso cuando no sé el tipo de la visión.

prueba esto:

 View view = findViewById(...) //or however you need it LayoutParams lp = (LayoutParams) view.getLayoutParams(); 

Los márgenes son accesibles

 lp.leftMargin; lp.rightMargin; lp.topMargin; lp.bottomMargin; 

Editar: quizás ViewGroup.MarginLayoutParams funcionará para usted. Es una clase base para otros LayoutParams .

 ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); 

http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

Tratar

 ViewGroup.MarginLayoutParams vlp = (MarginLayoutParams) view.getLayoutParams() vlp.rightMargin vlp.bottomMargin vlp.leftMargin vlp.topMargin 

Esto devolvió el margains correcto para mi atleast de vista.

http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

Ahora utilice este código editado. Esto te ayudara

 FrameLayout.LayoutParams lp=(FrameLayout.LayoutParams)mainLayout.getLayoutParams(); lp.leftMargin // for left margin lp.rightMargin // for right margin 

Como otros sugirieron, layout_margin # es el espacio entre el borde # del padre y su vista.

  • # Reemplaza "Izquierda", "Derecha", "Superior" o "Abajo"

Conseguir / establecer los márgenes funcionó para mí con:

 ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mView.getLayoutParams(); params.topMargin += 20; mView.requestLayout(); 

Por supuesto, mi View era de hecho un ViewGroup y el padre era un ViewGroup también. En la mayoría de los casos, debe emitir sus parámetros de diseño a la clase View de los padres LayoutParams (en este caso, ViewGroup y RelativeLayout)

  • Detectar clics largos en una vista personalizada?
  • Animación extraña en la Galería cuando se solicita un invalidate a sus hijos
  • ¿Cuántos WindowInsets hay?
  • Cómo establecer vistas en RelativeLayout mediante programación?
  • ¿Cómo crear el diseño de una vista personalizada de forma programática?
  • Cambiar el contenido de la vista de la actividad dinámicamente
  • Reemplazando View.onSaveInstanceState () y View.onRestoreInstanceState () utilizando View.BaseSavedState?
  • ¿Cómo obtener el contenido de una pestaña dentro de TabHost?
  • Cómo cambiar el color del marcador actual de la pestaña en Android ViewPager?
  • ¿Por qué mi menú de edición / copia de EditText se encuentra debajo de EditText? ¿Cómo cambiar el orden z de la ventana emergente?
  • Elemento compartido animación entre RecyclerView elemento y CollapsingToolbar dentro de la misma actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.