Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 30/01/11, 02:44:12
Array

[xs_avatar]
Duqe Duqe no está en línea
Usuario veterano
 
Fecha de registro: jun 2009
Mensajes: 668
Modelo de smartphone: Nexus One

Problema con Resources (drawables)

Código:
public int setImagenIdioma(String idioma) {
    int valor = 0;
    if(idioma == "es") {
        valor = context.getResources().getInteger(R.drawable.es);
    } else if(idioma == "en") {
        valor = context.getResources().getInteger(R.drawable.en);
    } else if(idioma == "de") {
        valor = context.getResources().getInteger(R.drawable.de);
    } else {
        valor = this.context.getResources().getInteger(R.drawable.idesconocido);
    }
    return valor;
}
Buenas.

Pues con ese codigo recibo un error de Resourcesnotfoundexception. Es curioso, por que justo antes se ejecuta otra funcion, similar a esta, pero que en vez de recibir un string de 2 caracteres, recibe un string de 5 o mas. Tambien la diferencia es que las imagenes son mas grandes en la otra funcion.

A que puede venir el error? He probado de todo a la hora de comprobar los valores. Y ya solo me queda que pensar que al ejecutarse, busque ese resource en su carpeta correspondiente. Pero que si no encuentra uno adecuado para la densidad de pantalla, salta ese error.

Sobre esto ultimo comentar que en las 3 carpetas de drawable (hdpi, mdpi, ldpi) tengo las mismas imagenes. Mismo tamaño tambien. Por eso solo me queda pensar que quizas tenga que reducir las que tengo el ldpi, y ampliar las de hdpi.

Sobre esto ultimo, hay alguna tabla o algo de referencia a la hora de crear las imagenes que queremos meter en los apks? Quiero decir, por ejemplo, para una de 100 x 100 dpi, reducirla a xxx x xxx dpi para ldpi, o ampliarla x cantidad para meterla en hdpi.

A ver si alguien me echa un cable con esto. Gracias.
Responder Con Cita


  #2  
Viejo 10/01/12, 04:13:12
Array

[xs_avatar]
manus.reload manus.reload no está en línea
Miembro del foro
 
Fecha de registro: dic 2010
Localización: Jaen
Mensajes: 295
Modelo de smartphone: X10i, ARC
Tu operador: Vodafone
Hola! Este error se produce porque estas intentado acceder a un Resource que quizás no exista. Te explico, lo que estas haciendo con:
Código:
valor = context.getResources().getInteger(R.drawable.es);
Es obtener el Resource de tipo integer con el id: R.drawable.es, por lo que no lo encontrará.
El tamaño de los iconos en las carpetas hdpi, mdpi, ldpi no le importa al compilador, son medidas relativas, puesto que una imagen puede ser mayor que otra.
Yo en Windows utilizaba Paint.NET, en Linux utilizo GIMP.

Puedes resolver el problema:
Opcion A: Devolver R.drawable.es, y poner ese valor directamente el imageview.
Opcion B: Devolver el Drawable con: getResources().getDrawable(id) y luego settearlo en el ImageView.
__________________

Cacharros:
S.E. XPERIA X8, S.E. XPERIA X10, S.E. XPERIA ARC, Akiyama Acura con Capsula Shure M44-7,Behringer DJX 750
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 23:29:30 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /