Cómo cargar dinámicamente R.styleable recurso?

Estoy tratando de exportar el SDK de Android de Facebook como un JAR para su uso en mi proyecto.

Esto requiere cargar todos los recursos dinámicamente.

Por ejemplo, tengo que hacer cambios similares a esto:

//findViewById(R.id.com_facebook_login_activity_progress_bar).setVisibility(View.VISIBLE); int viewID = getResources().getIdentifier("com_facebook_login_activity_progress_bar", "id", getPackageName()); findViewById(viewID).setVisibility(View.VISIBLE); 

La línea comentada muestra el original, y las 2 líneas siguientes muestran el cambio que hice para cargar el mismo recurso dinámicamente.

El SDK de Facebook declara un recurso R.styleable, y no puedo averiguar cómo cargarlo dinámicamente. Aquí está el código original:

 private void parseAttributes(AttributeSet attrs) { TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.com_facebook_profile_picture_view); setPresetSize(a.getInt(R.styleable.com_facebook_profile_picture_view_preset_size, CUSTOM)); isCropped = a.getBoolean(R.styleable.com_facebook_profile_picture_view_is_cropped, IS_CROPPED_DEFAULT_VALUE); a.recycle(); } 

Luego en attrs.xml, se declara lo siguiente:

  <declare-styleable name="com_facebook_profile_picture_view"> <attr name="preset_size"> <!-- Keep in sync with constants in ProfilePictureView --> <enum name="small" value="-2" /> <enum name="normal" value="-3" /> <enum name="large" value="-4" /> </attr> <attr name="is_cropped" format="boolean" /> </declare-styleable> 

¿Cómo puedo cargar este recurso dinámicamente, (por ejemplo, reemplazar la referencia de estilo R.)?

One Solution collect form web for “Cómo cargar dinámicamente R.styleable recurso?”

Estoy respondiendo a la pregunta aquí incase alguien está específicamente tratando de exportar también el SDK de Facebook como un tarro.

Utilicé la función descrita en la respuesta a esta pregunta: Acceso a recursos <declare-styleable> por programación

 private void parseAttributes(AttributeSet attrs) { int attrArray[] = StyleableHelper.getResourceDeclareStyleableIntArray(getContext(), "com_facebook_profile_picture_view"); //TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.com_facebook_profile_picture_view); TypedArray a = getContext().obtainStyledAttributes(attrs, attrArray); setPresetSize(a.getInt(0, CUSTOM)); isCropped = a.getBoolean(1, IS_CROPPED_DEFAULT_VALUE); //setPresetSize(a.getInt(R.styleable.com_facebook_profile_picture_view_preset_size, CUSTOM)); //isCropped = a.getBoolean(R.styleable.com_facebook_profile_picture_view_is_cropped, IS_CROPPED_DEFAULT_VALUE); a.recycle(); } 
  • ¿Cómo configurar el icono de cada ficha en un fragmentopageradapter a una animación gif?
  • Cómo organizar el código fuente de Android en carpetas
  • HttpURLConnection conexión de cable en Android
  • Abrir la aplicación Galería en Android
  • Cómo cambiar las pestañas de forma programática mediante buttonclick en Android
  • Cómo generar simple-xml java objeto anotado desde el esquema xsd
  • Notificando un solo hilo: notify, notifyAll o concurrent.locks.Condition?
  • ¿Cómo obtienes MCC y MNC del teléfono en Android?
  • Acceso puntero nulo: los datos variables sólo pueden ser nulos en este lugar
  • NullPointerException al iniciar sesión con Facebook SDK y ParseFacebookUtils
  • ¿Cuándo se llama a View.onMeasure ()?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.