Bonjour,
Je programme une petite application J2ME, et j'ai besoin d'afficher une image web dans un canvas.
J'arrive a afficher une image local grâce à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part g.drawImage(Image.createImage("image.png"), 0, 0, Graphics.VCENTER | Graphics.HCENTER);
Donc pour une image distante j'utilise :
Avec cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 InputStream is = null; dwlImage(); ...... g.drawImage(Image.createImage(is), 0, 0, Graphics.VCENTER | Graphics.HCENTER); ......
Et sa plante....
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 public void dwlImage() throws Exception { System.out.println("chargement....."); new Thread(new Runnable(){ public void run() { String url = "http://site/fichier.png"; HttpConnection c = null; int rc; try { c = (HttpConnection)Connector.open(url); // Getting the response code will open the connection, // send the request, and read the HTTP response headers. // The headers are stored until requested. rc = c.getResponseCode(); if (rc != HttpConnection.HTTP_OK) { throw new IOException("HTTP response code: " + rc); } is = c.openInputStream(); // Get the ContentType String type = c.getType(); // Get the length and process the data int len = (int)c.getLength(); if (len > 0) { int actual = 0; int bytesread = 0 ; byte[] data = new byte[len]; while ((bytesread != len) && (actual != -1)) { actual = is.read(data, bytesread, len - bytesread); bytesread += actual; } } else { int ch; while ((ch = is.read()) != -1) { } } } catch (ClassCastException e) { throw new IllegalArgumentException("Not an HTTP URL"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (c != null) try { c.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }).start(); }
Je débute en J2ME alors je comprend rien.
Si quelqu'un peut m'aider svp.
Merci
Partager