Spanish [B4A] [Tutorial] Material Design - Actualizado AppCompact v3.30+ y B4A v6+

vbmundo

Well-Known Member
Licensed User
Hola,

Como hago para tener el
* Muy importante que en su Android SDK Manager deben tener instalado Android Support Repository v33+
Como muestra en la imagen el mas actual es v34.



Me habias explicado que como el SDK MANAGER fallaba en la actualización del Android Support Repository, instale el ANDROID STUDIO


Ya he instalado el ANDROID STUDIO pero no logro actualizar ese paquete.. mi Android SDK Manager sigue diciendo que tengo la version 32 instalada, y que esta disponible la 35.

Gracias
 

vbmundo

Well-Known Member
Licensed User
YA LOGRÉ HACERLO... desde el ANDROID SDK MANAGER, antes daba error, ahora no

Quizás a eso te referías con tener instalado el ANDROID STUDIO.

Saludos y Gracias
 

dar2o3

Active Member
Licensed User
Yo no tengo instalado el Android Studio y puedo hacerlo, el "truco" como ya te dije es ejecutar Android SDK Manager como administrador, si no (a mi por lo menos") me da el mismo error que te da a ti.
 

rscheel

Well-Known Member
Licensed User
Ha salido una nueva versión de AppCompact v3.30 he actualizado el Tutorial para esa versión..
 

rscheel

Well-Known Member
Licensed User
Con la nueva versión de AppCompact llego una nueva versión de la librería DesignSupport, esta librería cuenta con componentes muy interesantes como son:

Snackbar



TabLayout



FloatlabelEditText



FloatingActionButton



Y por ultimo, que se agrego recientemente y es una muy buena noticia es

NavigationDrawer




Todo este material en el diseño de aplicaciones android es muy útil.
 

Gabino A. de la Gala

Active Member
Licensed User
Muchas gracias por todos los aportes.

Para los que vengan "detrás". Decirles que en mi caso atasqué en dos cosas del SDK Manager:
1) Necesité añadir también el Google Repository
2) Tuve que ejecutar el SDK Maneger en modo Administrador, porque sino no era capaz de escribir en la carpeta de C:\Archivos de Programa (x86)\....
 
Last edited:

erick castillo

New Member
Muchas gracias por este material...
Una pregunta que tal vez sea muy obvia pero apenas estoy abriendo los ojos a este lenguaje ....

Hablas del archivo Manifest, donde lo encuentro o donde lo hago???? Muchas gracias


Debido a que realizaron una consulta sobre este tema en el foro decidí hacer este breve turorial sobre Material Design. Para que todos tengan acceso a esta información.

Utilizar B4A v6+

Importante Es necesario actualizar su ANDROID SDK.

Tener en la biblioteca de librería b4a las siguientes librerías

* AppCompat => Descargar AppCompat_v3.52 Copiar en la carpeta de librería donde tengan instalado b4a, o en su carpeta de librerías adicionales.

Ej. C:\Program Files (x86)\Anywhere Software\B4A\Basic4android\Libraries.

* El siguiente paso es agregar a Manifest Editor

B4X:
SetApplicationAttribute(android:theme, "@style/MyAppTheme")

CreateResource(values, theme.xml,
<resources>
    <style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#0098FF</item>
        <item name="colorPrimaryDark">#007CF5</item>
        <item name="colorAccent">#AAAA00</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>
</resources>
)
Tu Manifest Editor debería quedar mas o menos de la siguiente manera

B4X:
AddManifestText(
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="22"/>
<supports-screens android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.

SetApplicationAttribute(android:theme, "@style/MyAppTheme")

CreateResource(values, theme.xml,
<resources>
    <style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#0098FF</item>
        <item name="colorPrimaryDark">#007CF5</item>
        <item name="colorAccent">#AAAA00</item>
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>
</resources>
)
* Al haber realizado lo anterior, en nuestro activity main debemos agregar la siguiente linea de código

B4X:
#Extends: android.support.v7.app.AppCompatActivity

La estructura de nuestro Activity Main debiera ser la siguiente

B4X:
#Region  Project Attributes
    #ApplicationLabel: AppCompat
    #VersionCode: 2
    #VersionName: 3.30
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region

#Extends: android.support.v7.app.AppCompatActivity

#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("layout1")
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub
* Recuerden que deben tener seleccionado en Libraries Manager AppCompat(version: 3.30+) como muestra la imagen

View attachment 46273

* Muy importante que en su Android SDK Manager deben tener instalado Android Support Repository v36+
En la imagen se muestra v34, pero es necesario v36+ con la nueva version de AppCompact v3.30+.


View attachment 46274

* En este link encontraran un ejemplo completo.

* Y acá el tutorial de AppCompat original en ingles https://www.b4x.com/android/forum/threads/appcompat-make-material-design-apps-compatible-with-older-android-versions.48423/

* Tutorial extra en Ingles

DesignSupport - Additional Material Design components

Todo esto es posible gracias al gran trabajo de @corwin42
 
Top