7
votes

Définir l'image de fond d'une vue super

Y a-t-il un moyen de définir l'image de fond d'une vision de surface? Cela doit-il être fait en XML ou puis-je faire tout cela en Java - j'ai quelque chose qui ressemble à ceci dans mon constructeur: xxx

mais cela ne montre toujours rien.


0 commentaires

5 Réponses :


4
votes

Vous ne pouvez pas définir de fond introduit sur une vue superficielle. Vous devrez dessiner l'arrière-plan sur la surface vous-même.


5 commentaires

Ok, donc dans la méthode ondraw () que je présume?


Non, ONDRAW () ne fera pas ce que vous voulez. Lorsque vous utilisez une vision superficielle, vous le rendez à l'aide d'un contexte OpenGL ou vous saisissez la toile de la surface à travers la surface. Vous devez rendre votre antécédent à l'aide de cette toile (ou OpenGL si vous faites OpenGL.)


J'utilise seulement une toile - j'essaie simplement de comprendre comment je ferais cela avec la toile.


salut comment adapter l'image sur toile et au centre de la supervision


Bien que techniquement, cette réponse soit correcte, la réponse @XAV ci-dessous offre une bonne alternative qui atteignait ce que l'OP avait demandé.



5
votes

Essayez ceci xxx


1 commentaires

Comment je peux donner la taille de la mise en page sur le dessin bitmap sur toile et le placer au centre de la supervision.



10
votes

Pendant que vous ne pouvez pas définir directement une image d'arrière-plan sur un superficiel , vous pouvez chevaucher un imageview (affichant votre image d'arrière-plan) et votre superficiel en plus de cela, ce qui le rend transparent.

J'ai eu des problèmes de performances lors de la création d'un bitmap de 1920x1080 comme une image d'arrière-plan pour chaque View View repeindre: la seule solution que j'ai trouvée (grâce à cette réponse ) utilisait un imageview affichant ce bitmap 1920x1080 (fixe) et à l'aide de mon superficiel sur le dessus de celui-ci, faisant Il transparent, pour éviter de peindre la grande image de fond pour chaque superficiel repeindre. Maintenant, mon application est beaucoup plus fluide, grâce à ce code: xxx

alors vous devez démarrer votre méthode de peinture de avec ceci: (dans l'ordre Pour "affleurer" l'image dessinée précédente dans superficielle S) xxx


2 commentaires

Merci mec! 2 jours j'essayais de faire ça! Après 5 ans, cela sauve toujours la vie de quelqu'un.


merci beaucoup ... que canvas.drawcolor (0, porterduff.mode.clear); est embrayage!



0
votes

Un petit ajout à la réponse de XAV. Vous voudriez définir la vue de contenu en tant que rootpanel par la suite:

setContentView(rootPanel);


0 commentaires

1
votes
your surfaceView.setBackground(getResources().getDrawable(R.drawable.?));

0 commentaires