Hello, je veux faire un fond d'écran animé.
J'utilise GLWallpaperService
avec l'example suivant :
https://github.com/markfguerra/GLWallpaperExample
Le problème est que je n'arrive pas utiliser les ressources.
J'utilise this en rouge pour passer en paramètre le contexte.
La classe renderer pas en entier :
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 public class MyWallpaperService extends GLWallpaperService { public MyWallpaperService() { super(); } public Engine onCreateEngine() { MyEngine engine = new MyEngine(this); return engine; } class MyEngine extends GLEngine { MyRenderer renderer; Context _context; public MyEngine(Context context) { super(); _context = context; // handle prefs, other initialization ArrayList<Integer> list ; list = TabDebloquer(); //BitmapDrawable img = (BitmapDrawable) context.getResources().getDrawable(Reference._images[13][0]); //Bitmap img = BitmapFactory.decodeResource(context.getResources(), Reference._images[13][0]); renderer = new MyRenderer(_context, list); setRenderer(renderer); setRenderMode(RENDERMODE_CONTINUOUSLY); }
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 public class MyRenderer implements GLWallpaperService.Renderer { public ImagesMvt _images; Context _context; public MyRenderer(Context context,ArrayList<Integer> list){ _context = context; _images = new ImagesMvt(_context, 2, 2, list); } public void Init(ArrayList<Integer> list) { _images = new ImagesMvt(_context, 2, 2, list); } public void onDrawFrame(GL10 gl) { gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); _images.draw(gl); }
et dans la classe ImageMvt j'utilise ceci
ca crache à getDrawable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for (int num = 0 ; num < _nbImg ; num++) { _img[num].SetImage(gl, ((BitmapDrawable)_context.getResources().getDrawable(Reference._images[0][num])).getBitmap(),mTextIDs.get(num),_posImgX[num]*_largeur/4.f , _posImgY[num]*_largeur/4.f, _angleImg[num] ); }
j'ai ca :
11-16 22:44:25.819: ERROR/AndroidRuntime(347): android.content.res.Resources$NotFoundException: Resource ID #0x7f020056
11-16 22:44:25.819: ERROR/AndroidRuntime(347): at android.content.res.Resources.getValue(Resources.java:892)
11-16 22:44:25.819: ERROR/AndroidRuntime(347): at android.content.res.Resources.getDrawable(Resources.java:580)
11-16 22:44:25.819: ERROR/AndroidRuntime(347): at net.markguerra.android.glwallpaperexample.ImagesMvt.InitImages(ImagesMvt.java:208)
11-16 22:44:25.819: ERROR/AndroidRuntime(347): at net.markguerra.android.glwallpaperexample.ImagesMvt.draw(ImagesMvt.java:320)
11-16 22:44:25.819: ERROR/AndroidRuntime(347): at net.markguerra.android.glwallpaperexample.MyRenderer.onDrawFrame(MyRenderer.java:28)
11-16 22:44:25.819: ERROR/AndroidRuntime(347): at net.rbgrn.android.glwallpaperservice.GLThread.guardedRun(GLWallpaperService.java:663)
11-16 22:44:25.819: ERROR/AndroidRuntime(347): at net.rbgrn.android.glwallpaperservice.GLThread.run(GLWallpaperService.java:528)
Avez-vous une suggestion ?
Merci
Partager