Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Recursos de referencia de otro módulo en Android Studio

Tengo un módulo de aplicación principal, así como algunos módulos de biblioteca.

¿Cómo puede mi módulo Library referenciar recursos del módulo Main App.

  • ¿Qué es "Recursos" en el constructor BitmapDrawable realmente?
  • Desactivar la optimización de recursos / imágenes / png de Android
  • Recurso de Android para un producto específico
  • Adición de directorios a carpetas de recursos en Android
  • ¿Cómo puedo tener res / values-pt_PT y res / values-pt_BR en Android?
  • Inclusión / exclusión de recursos condicionales para Android apk build
  • Por ejemplo: Mi aplicación base tiene un colors.xml que tiene un elemento de color llamado "AppPrimary" que es azul.

    En mi biblioteca quiero que una vista en un diseño xml haga referencia al color @ Color / AppPrimary, pero eso no funciona.

    ¿Cómo puedo conseguir esto?

    Editar: Debo especificar esto no es específicamente appCompat recursos. Sólo cadenas genéricas / colores / estilos / en mi módulo principal. ¿Cómo puedo hacer referencia a ellos en el mismo proyecto en mi módulo de biblioteca colors.xml / strings.xml?

  • Encuentra el número de versión y el código de versión de apk generado por android studio
  • El botón de ejecución está deshabilitado en Android Studio
  • Cambiar plantilla de autor en Android Studio
  • Módulo Gradle y submódulo git
  • Problema de auto popup de la documentación de Android Studio
  • La función de arrastrar / soltar en el estudio de Android no funciona
  • One Solution collect form web for “Recursos de referencia de otro módulo en Android Studio”

    En el módulo de biblioteca en la referencia de diseño xml ?attr/colorPrimary lugar de @color/AppPrimary

    Hace referencia a los atributos de la paleta de colores del tema de la aplicación. es decir;

     <item name="colorPrimary">@color/AppPrimary</item> 

    También puede consultar los otros atributos de la paleta de colores como:

     <item name="colorPrimaryDark">...</item> -> ?attr/colorPrimaryDark <item name="colorAccent">...</item> -> ?attr/colorAccent 

    y así.

    Consulte esta documentación

    CAVEAT :
    Estos ejemplos hacen referencia a la implementación de AppCompat en el tema. Es decir, sin android: prefijo de espacio de nombres.

    – EDITAR –

    La respuesta breve es que simplemente no puedes "obtener" un color definido desde tu módulo principal con referencia al archivo colors.xml de tus bibliotecas.

    Sin embargo, puede aprovechar los atributos personalizados definidos en su tema para lograr el mismo efecto.

    Esto funciona declarando un estilo genérico en su archivo attrs.xml en el módulo de la biblioteca, Algo así:

     <declare-styleable name="BaseTheme"> <attr name="someColor" format="reference|color" /> </declare-styleable> 

    Nota: El nombre del estilo no tiene ninguna influencia en esta implementación así que siéntete libre de nombrarlo como quieras.

    A continuación, en la definición de tema del módulo principal en el archivo 'style.xml' o 'theme.xml', deberá establecer este atributo en el color que desea compartir, como esto:

     <style name="Theme.Example" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Color Palette --> <item name="colorPrimary">...</item> <item name="colorPrimaryDark">...</item> <item name="colorAccent">...</item> <!-- Here we define our custom attributes --> <item name="someColor">@color/dark_blue</item> </style> 

    Una vez definido esto, puede hacer referencia al atributo en el código XML del módulo de biblioteca. p.ej;

     <TextView ... android:textColor="?attr/someColor" /> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.