J'ai créé une vue personnalisée nommée Graphview
. Voici la structure de la classe GraphView.
public class GraphView extends View {
public GraphView(Context context, float[] values, String title, String[] horlabels, String[] verlabels, boolean type) {
super(context);
........
}
..................
.................
}
J'ai ajouté la vue dans une table en utilisant addview()
. Cela fonctionne bien. Maintenant, je veux définir la hauteur et la largeur du fichier GraphView
. Comment faire ça?
LayoutParams
doit provenir de la mise en page où legraphView
est placé. Par exemple, si dans le fichier de mise en page XMLgraphView
est placé à l'intérieurRelativeLayout
, vous devez utilisernew RelativeLayout.LayoutParams(width, height)
Vous pouvez définir la hauteur et la largeur comme ceci:
la source
myGraphView.getLayoutParams().height = 100;
.this.getLayoutParams().height = 100
, assurez-vous de le suivrethis.setLayoutParams(this.getLayoutParams())
, sinon il ne fera rien (utile).vous pouvez définir la hauteur et la largeur d'une vue dans une disposition relative comme celle-ci
la source
setLayoutParams()
est requis car il invoque d'autres méthodes telles queresolveLayoutParams()
etrequestLayout()
layoutParams
initiation lors d'une vue sera un NPE, veuillez expliquer à quel moment vous exécutez cela?Sur Kotlin, vous pouvez définir la largeur et la hauteur de n'importe quelle vue directement en utilisant leurs propriétés virtuelles:
la source
spin12
est votre spinner et 200 , 120 estwidth
etheight
pour votrespinner
.la source
Il s'agit d'une version basée sur Kotlin, en supposant que la vue parente est une instance de
LinearLayout
.Cela permet de définir la largeur et la hauteur (
100
et200
) sur une seule ligne.la source