J'essaye de dessiner un graphique dans Android. Je veux que le graphique s'adapte à la taille d'écran actuelle, donc au lieu de les définir explicitement dans les constantes, j'obtiens la taille d'un LinearLayout
qui est destiné à contenir le graphique. Cependant, il y a un problème qu'il n'est pas possible d'obtenir des tailles dans l'activité onCreate()
, donc j'utilise un LinearLayout personnalisé avec onSizeChanged()
surchargé. Je l'ai inclus dans la disposition avec:Dessiner un graphique, ne peut pas voir l'image résultante
view class="com.nnevod.loggraph.graph$GraphDisplayLayout"
android:layout_height="fill_parent"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_weight="1"
android:background="@color/White"
J'ai omis des parenthèses angulaires. Dans nSizeChanged()
, les dimensions de la vue sont lues, puis tout est fait comme décrit dans de nombreux exemples de graphiques: un bitmap est créé, transmis à une classe de dessin de graphes, un ImageView est créé, est défini avec le Bitmap, puis ajouté au LinearLayout personnalisé.
Le problème est que l'image du graphique n'est pas visible. Cependant, si j'essaie de l'inspecter avec HierarchyViewer
, l'image devient visible. Si je coupe-colle le code de onSizeChanged()
à l'activité onCreate()
, sans utiliser les dimensions prédéfinies au lieu des mesures, tout est bien affiché.
Donc, ma question est ce que je fais mal? J'ai supposé que soit j'utilise un mauvais contexte dans onSizeChanged()
personnalisé, ou il n'est pas possible de mettre à jour la vue à partir de là, et je devrais en quelque sorte passer les dimensions mesurées à l'activité et faire la pièce jointe du Bitmap dans certains des méthodes de l'activité. Bien que dans la partie contexte, j'ai essayé d'utiliser tous les contextes disponibles, y compris en utilisant le contexte de l'activité, en vain.
Si nécessaire, je fournirai plus de code.