Bonjour à tous,
Tout d'abord je m'excuse pour la peut-être facilité du problème posé, je débute sous Android (et oui encore un nouveau développeur sur cette platforme !).
Je souhaite créer des petits rectangles les uns au dessous des autres. Ces rectangles forment une entité occupant toute la hauteur de l'écran, et sont de largeur fixé, 10 par exemple. La hauteur de chaque rectangle doit donc être la hauteur de l'écran divisée par le nombre de rectangle.
Le rendu visuel est donc un unique grand rectangle de largeur 10 et qui occupe l'entière hauteur de l'écran. Mais en réalité, ce n'est pas un unique rectangle mais plusieurs petits rectangles de largeur 10 et de hauteur "taille écran / nombre rectangle".
J'espere que je me fais bien comprendre...
Via la methode drawRect dans le canevas, et dans une boucle for je crée donc mes N rectangles. Mais le problème est que ceux-ci n'ont pas tous la même taille... J'utilise la methode getHeight pour avoir la hauteur de l'écran.
Je suspecte une erreur d'arrondie... Mais pourtant la methode drawRect prend des floats... :o
Je sais que ce n'est pas evident de travailler sans code et je ne vois pas comment vous pourriez m'aider sans voir mon code. Mais je ne suis pas chez moi pour le moment et ne peut vous transmettre le code (j'édite mon post demain ou ce soir).
Si je post déja ma demande, c'est que j'aimerais avoir vos suggestions pour effectuer ce dont je vous parle, parceque je pense ne pas m'y être pris proprement.
Merci d'avance
Seb
EDIT : Mon bout de code =>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new Panel(this)); } class Panel extends View { public Panel(Context context) { super(context); } public void onDraw(Canvas canvas) { canvas.drawColor(Color.RED); Paint thePaint = new Paint(); thePaint.setColor(Color.CYAN); boolean[] deadBrick = new boolean[40]; deadBrick[5] = true; for (int brickInHeight = 0; brickInHeight < 40; brickInHeight++){ if (!deadBrick[brickInHeight]){ canvas.drawRect(0, brickInHeight * (this.getHeight() / 40),20,(brickInHeight + 1) * this.getHeight() / 40, thePaint); } } } }
Partager