Comment obtenir la hauteur et la largeur du Bouton
J'ai créé un tableau de boutons. Maintenant, je veux trouver la hauteur et la largeur de la touche, et pour cela j'ai utilisé getWidth() et getHeight(). Mais le truc, c'est qu'il retourne toujours 0. Pourquoi est-ce arrivé? J'ai envoyer mon code, merci de vérifier si quelque chose est incorrect.
int x,y;
LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout);
LinearLayout rowLayout = null;
LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1);
//Create Button
for (int i = 0; i<6; i++)
{
rowLayout = new LinearLayout(this);
rowLayout.setWeightSum(7);
layoutVertical.addView(rowLayout, param);
for(int j=0; j<7; j++)
{
m_pBtnDay[i][j] = new Button(this);
rowLayout.addView(m_pBtnDay[i][j], param);
m_pBtnDay[i][j].setOnLongClickListener(this);
m_pBtnDay[i][j].setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
m_pBtnDay[i][j].setTextSize(12);
}
}
x = m_pBtnDay[i][j].getWidth();
y = m_pBtnDay[i][j].getHeight();
Log.d("width", Integer.toString(x));
Log.d("Height", Integer.toString(y));
return true;
OriginalL'auteur AndroidDev | 2011-10-13
Vous devez vous connecter pour publier un commentaire.
Probablement vous appelez
getWidth()
etgetHeight()
trop tôt: je pense que l'INTERFACE utilisateur n'a pas été dimensionnées et disposées sur l'écran mais...Vous pouvez essayer de placer ce code à l'intérieur de ce:
créer dinamically mise en page et de le laisser montrer avant de vérifier la largeur et la hauteur. Dans mon édité code que j'ai donné un exemple, mais je suis sûr que ce n'est pas la seule...
vous n'avez pas à nous dire dans lequel la fonction/l'événement que vous appelez votre code...
son onCreate(Bundle b) fonction...ok je vais essayer votre code
Ouai quand j'ai écrit le code pour getWidth et getHeight sur onWindowFocusChanged(boolean possèdefocus) et me donne le résultat.Et est-il vrai que pour les différents Résolution, il donne les différentes largeur et la hauteur
OriginalL'auteur Marco
Une autre façon
OriginalL'auteur Sandy
mettre ceci dans votre boucle
essayer
OriginalL'auteur Jigar Patel
Vous essayez d'utiliser le compte de la variable "i" et "j" pour l'utilisation à l'extérieur à partir à la fois pour des boucles. Cela devrait soulever une exception car la ne sont availabil dans chaque pour-bloc.
Essayer de faire de la sortie de la deuxième boucle for...
OriginalL'auteur Marc Juschkeit
Vous pouvez remplacer le point de Vue suivant la méthode, appelée lors de la mise en page de phase.
Ce qui semble le plus approprié, comme il est dit expressément que les comptes pour le zéro de la largeur et la hauteur que vous observez:
Voir ici.
OriginalL'auteur SK9
Essayer cela fonctionne aussi:
OriginalL'auteur mayank_droid