Foro de elhacker.net

Programación => Java => Mensaje iniciado por: ignorantev1.1 en 27 Julio 2014, 17:57 pm



Título: Problema: Objeto como parámetro.
Publicado por: ignorantev1.1 en 27 Julio 2014, 17:57 pm
Hola, qué tal:

Tengo un par de funciones, de igual nombre, diferenciadas en que una recibe una arreglo de objetos y la otra solamente uno. Dentro de las funciones los objetos son "inicializados":

Código
  1. // Esta función funciona perfectamente.
  2. void decodeRes(Bitmap[] bmp, int w, int h, String code){
  3. Bitmap tmpLoad;
  4.  
  5. for(int i = 0; i < bmp.length; i++){
  6. tmpLoad = BitmapFactory.decodeResource(getResources(), getResources().getIdentifier(code + i, "raw", context.getPackageName()));
  7. bmp[i] = Bitmap.createScaledBitmap(tmpLoad, w, h, true);
  8.        }
  9. }
  10.  
  11. // He aquí el problema:
  12. void decodeRes(Bitmap bmp, int w, int h, String code){
  13. Bitmap tmpLoad;
  14. tmpLoad = BitmapFactory.decodeResource(getResources(), getResources().getIdentifier(code, "raw", context.getPackageName()));
  15. bmp = Bitmap.createScaledBitmap(tmpLoad, w, h, true);
  16.        System.out.println(bmp.getWidth()); //<----- Todo correcto, imprime el ancho del bitmap.
  17. }
  18.  
  19. // {...}, código, código...
  20.  
  21. Bitmap unPatito;
  22. decodeRes(unPatito, 24, 24, "patito0");
  23. System.out.println(unPatito.getWidth()); //<------ Null pointer exception!
  24.  

El problema está en la segunda función, puesto que el objeto que se pasa para ser "inicializado", sigue saliendo nulo.

Ya le he dado varias vueltas al código y no encuentro el error, incluso probé con:

Código
  1. void decodeRes(Bitmap bmp, int w, int h, String code){
  2. Bitmap tmpLoad;
  3. tmpLoad = BitmapFactory.decodeResource(getResources(), getResources().getIdentifier(code, "raw", context.getPackageName()));
  4. unPatito = Bitmap.createScaledBitmap(tmpLoad, w, h, true); //<----- Escribiendo la variable directamente sí funciona.
  5. }
  6.  

Gracias. espero me haya explicado, y también su ayuda.

¡Saludos!


Título: Re: Problema: Objeto como parámetro.
Publicado por: LaThortilla (Effort) en 30 Julio 2014, 15:07 pm
MM ya provastes con inicializar la variable?
Código
  1. Bitmap unPatito;


Título: Re: Problema: Objeto como parámetro.
Publicado por: Nasty35 en 4 Agosto 2014, 19:22 pm
En teoría debería ir... probaría con algo así:
Código
  1. Bitmap decodeRes(int w, int h, String code){
  2.    Bitmap tmpLoad;
  3.    tmpLoad = BitmapFactory.decodeResource(getResources(), getResources().getIdentifier(code, "raw", context.getPackageName()));
  4.    return Bitmap.createScaledBitmap(tmpLoad, w, h, true);
  5. }
  6.  
  7. Bitmap unPatito = decodeRes( 24, 24, "patito0");
  8. System.out.println(unPatito.getWidth());