Android définir la hauteur et la largeur de vue Personnalisée par programmation
J'ai créé un affichage personnalisé nommé Graphview
. Voici la structure de la GraphView classe.
public class GraphView extends View {
public GraphView(Context context, float[] values, String title, String[] horlabels, String[] verlabels, boolean type) {
super(context);
........
}
..................
.................
}
J'ai ajouté l'affichage dans un tablerow à l'aide de addview()
. Il fonctionne très bien. Maintenant, je veux régler la hauteur et de la largeur de la GraphView
. Comment faire?
Vous devez vous connecter pour publier un commentaire.
Le plus simple est de définir la taille par programmation comme ça :
C'est très bien si vous connaissez la taille exacte de la vue. Toutefois, si vous souhaitez une approche plus souple, vous pouvez remplacer la
onMeasure()
méthode de mesure de la vue plus précisément en fonction de l'espace disponible et des contraintes de mise en forme (wrap_content
,match_parent
, ou une taille fixe).Vous pouvez trouver un exemple sur la façon de remplacer
onMeasure()
en regardant le android docs et laLabelView
exemple dans votre répertoire SDK.LayoutParams
devrait être de la disposition où legraphView
est placé. Par exemple, si dans le fichier XML du fichier de mise en pagegraphView
est placé à l'intérieur deRelativeLayout
, alors vous devriez utilisernew RelativeLayout.LayoutParams(width, height)
Vous pouvez définir la hauteur et la largeur comme ceci:
myGraphView.getLayoutParams().height = 100;
.fill_parent
etc.this.getLayoutParams().height = 100
, assurez-vous de suivre parthis.setLayoutParams(this.getLayoutParams())
, sinon il ne fera rien (utile).vous pouvez définir la hauteur et la largeur de vue en un rapport de mise en page comme ceci
setLayoutParams()
est nécessaire, car il évoque d'autres méthodes telles que laresolveLayoutParams()
etrequestLayout()
spin12
est votre spinner et 200,120 estwidth
etheight
pour votrespinner
.C'est un Kotlin en fonction de la version, en supposant que la vue parent est une instance de
LinearLayout
.Cela permet de définir la largeur et la hauteur (
100
et200
) en une seule ligne.