Obtenir une marge de vue

Comment puis-je obtenir la valeur de marge d'une vue à partir d'une activité? La vue peut être de n'importe quel type.

Après un peu de recherche, j'ai découvert des moyens d'obtenir un aperçu d'une vue, mais je n'ai rien trouvé sur Margin. Quelqu'un peut-il aider?

  • Utilisation de la concurrence Android
  • Android: notification de BroadcastReceiver
  • Obtenir des noms de fichiers à partir d'un répertoire dans Android
  • Comment réduire la barre système dans Android 3.0 (Honeycomb)?
  • Boîte de dialogue de liste personnalisée d'Android
  • Version de SQLite utilisée dans Android?
  • J'ai essayé quelque chose comme ça,

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

    Cela fonctionne, mais dans le code ci-dessus, j'ai supposé que la vue était LinearLayout . Mais je dois obtenir l'attribut margin même si je ne connais pas le type de vue.

  • Android: Java v. Python
  • Emplacement: autorisations GPS / réseau: souhaité si disponible
  • Android SDK et AVD Manager ne fonctionneront pas
  • Comment sélectionner une valeur majuscule dans SQLite?
  • Comment changer le format du chronomètre?
  • L'ajout d'une simple ScrollView à Gallery provoque une fuite de mémoire
  • 4 Solutions collect form web for “Obtenir une marge de vue”

    essaye ça:

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

    Les marges sont accessibles via

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

    ViewGroup.MarginLayoutParams : peut être ViewGroup.MarginLayoutParams fonctionnera pour vous. C'est une classe de base pour d'autres LayoutParams .

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

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

    essayer

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

    Cela a rendu les margains corrects pour ma vue au moins.

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

    Utilisez maintenant ce code édité. Cela vous aidera

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

    Comme d'autres l'ont suggéré, layout_margin # est l'espace entre le bord # du parent et votre vue.

    • # Remplace "Left", "Right", "Top" ou "Bottom"

    Les marges d'établissement / de réglage ont fonctionné pour moi avec:

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

    Bien sûr, ma View était en effet un ViewGroup et le parent était également un ViewGroup. Dans la plupart des cas, vous devez diffuser vos paramètres de mise en page dans la classe Afficher de la classe LayoutParams (dans ce cas, c'est ViewGroup et RelativeLayout)

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.