No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

LinearLayout: Organizacion lineal

9/20
Recursos

Aportes 63

Preguntas 29

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Para los que quieran los colores:

    <color name="colorPrimary">#8BC34A</color>
    <color name="colorPrimaryDark">#689F38</color>
    <color name="colorAccent">#085494</color>

    <color name="primary_light">#DCEDC8</color>
    <color name="primary_text">#212121</color>
    <color name="secondary_text">#757575</color>
    <color name="icons">#212121</color>
    <color name="divider">#BDBDBD</color>

en las nuevas versiones de android para cambiar el color de un boton hay que ponerlo as铆

"boton"
android:backgroundTint="@color/colorPrimary"

"vector"
android:drawableTint="@color/lock"

el color del candado lo cree en colors.xml

LinearLayout
Alinea los elementos de manera secuencial seg煤n su orientaci贸n, no se recomienda utilizar este tipo de layout si se va a trabajar con elementos muy grandes; tambi茅n a帽adir que dentro de un LinearLayout pueden convivir otros LinearLayout a帽adidos. Existen 2 posibles orientaciones:
OrientationVertical: Los elementos se alinean de arriba hacia abajo.
OrientationHorizontal: Los elementos se alinean de derecha a izquierda

Drawable-mdpi: Recursos para pantallas de densidad media (mdpi) (~ 160dpi). 48x48 (l铆nea base 1.0x) para densidad media (mdpi)
Drawable-hdpi: Recursos para pantallas de alta densidad (hdpi) (~ 240 ppp). 72x72 (1.5x) para alta densidad (hdpi)
Drawable-xhdpi: Recursos para pantallas de densidad extra alta (xhdpi) (~ 320dpi). 96x96 (2.0x) para densidad extra alta (xhdpi)
Drawable-xxhdpi: Recursos para pantallas de extra-extra-alta-densidad (xxhdpi) (~ 480dpi). 144x144 (3.0x) for extra-extra-high-density (xxhdpi)
Drawable-xxxhdpi: Recursos para usos extra-extra-extra-alta-densidad (xxxhdpi) (~ 640dpi). 192x192 (4.0x) para densidad extra-extra-alta-alta (xxxhdpi)

File->New->VectorAset: En esta ruta encontraremos iconos, formas y figuras propias de Android para el dise帽o de interfaces. Los 铆conos se definen como archivos xml que a trav茅s de vactores dibujan im谩genes. Es importante cambiarles el nombre, y si accedemos a ellos podemos cambiar ciertas caracter铆sticas de la figura, como el color y tama帽o. Siempre se guardan dentro del directorio drawable.
android:fillColor="@color/icon_color"

<ImageView/>
Con esta etiqueta declaramos im谩genes dentro del c贸digo xml. Eventualmente para declarar la ruta en la que se encuentra la imagen nos apoyamos de Android:src=鈥漴uta del archivo鈥.
Dentro de esta etiqueta tambi茅n debemos de especificar el layout_width y el layout_height de la imagen.

<ImageView
    android:layout_gravity="center"
    android:layout_width="160dp"
    android:layout_height="120dp"
    android:src="@drawable/platzi" />

Density Point: Densidad de puntos(dp), esta es la unidad de medida para el tama帽o de las im谩genes. Android lo trabaja de una manera porcentual, de forma que es la m谩quina virtual de Android la que decide el tama帽o de dicha imagen seg煤n los tama帽os de pantalla de cada dispositivo.

Layout_gravity
Este elemento afecta solamente a los elementos en el que se declara. Se utiliza para dar una posici贸n a los elementos dentro de la pantalla.
android:layout_gravity=鈥渃enter鈥

layout_margin
Se utiliza para dar un contorno al elemento en el que se declara, por ejemplo se pueden declarar dentro de 2 EditText para separarlos uno del otro.
android:layout_margin=鈥12dp鈥

drawablePadding
Se utiliza para separar 铆conos y texto que yacen dentro de un mismo view. Por ejemplo separar un 铆cono y el texto dentro de un EditText. Su unidad de medida es dp.
android:drawablePadding="12dp"

drawableStart
Esta l铆nea de c贸digo funciona para declarar 铆conos dentro de un EditText. Recordar que para que esto sea posible, el 铆cono ya debe de estar dentro del directorio drawable.
android:drawableStart="@drawable/vector_person"

<Space/>
Se utiliza para separar elementos mediante 鈥渆spacios鈥, de forma que ocupan un lugar de la pantalla pero sin ser visibles en pantalla.

<Space
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"/>

En este ejemplo de Space, se declararon los siguientes atributos:
Layout_width=鈥漨atch_parent鈥 飪 Esto hace que el espacio tome todo el ancho en el espacio que se le asign贸
Layout_height=鈥0dp鈥 飪 Esto inhabilita el height/altura, para dar continuidad al atributo weight
Layout_weight=鈥1鈥 飪 Hace que el elemento que le sigue(puede ser un bot贸n) se vaya hasta el fondo de la pantalla, de esta forma el espacio ocupa casi todo el espacio disponible en pantalla y as铆 separando los EditText y el bot贸n.

<Button/>
Esta etiqueta se utiliza para crear botones, dentro del mismo se pueden declarar los siguientes atributos:

android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:background="@color/colorPrimary"
android:text="@string/button_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"

layout_marginStart=鈥12dp鈥 飪 se utiliz贸 para dar un espacio entre el borde izquierdo de la pantalla y el bot贸n.
layout_marginEnd=鈥12dp鈥 飪 se utiliz贸 para dar un espacio entre el borde derecho de la pantalla y el bot贸n.
Background 飪 color de fondo, tra铆do desde el archivo colors.xml
Text 飪 texto dentro del bot贸n, importado del archivo Strings.xml
Width y height 飪 tama帽o del bot贸n

esto es bastante parecido a el html y css para los desarrolladores web 馃

LinearLayout distribuye los objetos de manera lineal ya sea vertical (uno debajo de otro) u horizontal (uno a continuacion del otro)
Y es cierto que podemos combinar y tener un linear layout vertical que tenga otros linearlayouts horizontales con lo cual tendriamos cuadriculas. Pero esto resulta poco optimo en una app, sobrecargas el arbol ,recuerden que cuando android lee el xml genera un arbol, y mientras mas anidado, mas complejo se vuelve el arbol y mientras mas viewgroups mas pesado es, con lo cual se hace menos optimo, por lo cual es un layout que debe usarse con cuidado y evitar anidar, es importante saberlo por que con linearlayout tecnicamente puedes dise帽ar lo que sea y eso hace que la mayoria de los programadores cuando inician lo usen para todo sin notar lo poco optimo que estan haciendolo. de preferencia es aprender a usar los otros como relative layout, que nos permite hacer mas anidando menos y teniendo menos viewgroups, y mejor aun , aprender ConstraintLayout (el pap谩 de los layouts XD) con el cual puedes generar interfaces mucho mas rapido y de una manera mucho mas optima, pero para empezar y solo para empezar esta bien linearlayout, pero deben ser conscientes de sus pros y CONTRAS.

As铆 va quedando mi clon de Spotify

Esta clase me fascino! Jamas pens茅 que podr铆a dise帽ar una interfaz (":

El marginStart y el marginEnd lo pueden sustituir por un marginHorizontal, lo que le agregar谩 el espacio tanto la izquierda como a la derecha

Esta clase fue magnifica, sinceramente invert铆 en Platzi por mi carrera como desarrollador Front-End; jam谩s me vi haciendo una interfaz de android. 馃挌

Si a alguien m谩s le pas贸 que el color del vector NO cambiaba en la propiedad de colorFill, as铆 lo solucion茅 yo:

<EditText
                android:layout_margin="12dp"
                android:drawablePadding="12dp"
                android:drawableStart="@drawable/vector_lock"
                android:drawableTint="@color/colorAccent"
                android:hint="@string/hint_passwod"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"></EditText>

Simplemente despu茅s de haber escodigo la propiedad de drawableStart, utilic茅 drawableTint y ah铆 escoges el color de tu preferencia y listo, funciona.
Aqui la prueba:

En la ultima versi贸n de Android Studio para cambiar el color de un boton se debe utilizar: app:backgroundTint="@color/colorPrimary" . Ya que por defecto es purpura.

El logo de Platzi Music que utiliza el profesor no est谩 en los recursos鈥

el atributo android:layout_gravity no existe en mi ide . y cuando lo coloco textualmente, no realiza ningun cambio. alguno sabe como solucionarlo?

  • La diferencia entre android:layout_gravity=鈥渃enter鈥 y android:gravity=鈥渃enter鈥 es que el primero solo afecta al elemento como tal y el segundo afecta a todos los elementos hijos.

AYUDA
Alguien me puede decir porque no tengo los archivos drawable como el del profesor.

que bueno que aprendi CSS xD

Aqu铆 vamos 馃憦
Es una delicia este curso.

Creo que en las nuevas versiones el vector asset ya no se encuentra en el mismo lugar.

En versiones mas nuevas de android Linearlayout ya no esta por defecto, el por defecto sera androidx.constraintlayout.widget.Constraint Layout, pero si quieres puedes cambiarlo en la parte de arriba del xml.Es por esto que tal vez en clases anteriores no todo te funcionaba igual

Les comparto los apuntes que tome de la Clase, por si a alguien m谩s le son 煤tiles:
Es el layout m谩s com煤n para alinear los elementos en pantalla. A este layout hay que agregarle el atributo orientation="vertical"orientation="horizontal"

<h5>Orientation vertical</h5>

Los elementos se posicionan uno debajo del otro ocupando el espacio que les corresponde en pantalla.

<h5>Orientation horizontal</h5>

Los elementos se posicionan uno al lado del otro de izquierda a derecha, con la excepci贸n de los pa铆ses en los que se lee de derecha a izquierda pues en esos pa铆ses se invierte el orden en el que se muestran los elementos.

Tambi茅n es posible tener LinearLayout con diferentes orientaciones anidados:

<h5>Agregar im谩genes a un Layout</h5>
<ImageView
        android:layout_width="140dp"
        android:layout_height="wrap_content"
        android:src="@drawable/logo" />

dp: density points es una medida que se basa en la densidad de pixeles de la pantalla. Esta medida le permite a Android decidir como se va a mostrar un elemento o estirar las im谩genes en base a la densidad de pixeles.

馃泩 Nota: Android tiene algunos colores predefinidos para evitar tener que definir todo desde cero. Estos se acceden con la sintaxis @android:color/nombreColor. Ejemplo:

android:background="@android:color/white"

android:layout_gravity="start" 鈫 La gravedad afecta s贸lo al elemento que tiene este atributo y no a todo el ViewGroup como ocurre con gravity.

馃泩 Nota: aparte de las im谩genes Android tambi茅n permite definir vectores en archivos XML. Para ello hay que hacer click en file > New > Vector Asset.

Android incluye algunos vectores ya definidos, estos se pueden ver en Clip art.

Para agregar uno de estos iconos a un elemento, por ejemplo un <EditText> se usa la siguiente sintaxis:

android:drawableStart="@drawable/vector_person"

android:layout_weight="1 鈫 Establece la prioridad de un elemento cuando se construya el layout.

Genial uso del linear Layout

Vaya adquir铆 otro curso de Android en otro sitio y bueno鈥 pues no entend铆 nada de los layout , de echo ha sido un impedimento para aprender dicho lenguaje , ahora con estos v铆deos los estoy entendiendo y encima c贸digo a c贸digo muy buenos si.

Muy intensa esta clase.

Cuando utilizamos Linear Layout tenemos que agregar un elemento llamado Orientation es para definir si el dise帽o ser谩 en portrait o landscape.


Vertical: Los elementos se agregar谩n uno despu茅s de otro tratando de rellenar el espacio que le corresponde en pantalla


Horizontal: Le elementos se agregan de izquierda a derecha.


A trav茅s de los DP (density point) podemos definir el tama帽os de im谩genes.


layout_gravity solo afecta al elemento al cual se le aplica.


Agregar vectores:
File>new>vector Asset>cambiar nombre>clip Art>next >finish.

He estado haciendo algunas apps y al principio me fue dificil saber como hacer que las im谩genes tuvieran todos los tama帽os hasta que descubr铆 que dentro de Android Studio se puede instalar un plugin llamado batch drawable importer, donde puedo elegir la imagen que necesito y me la convierte a los tama帽os que el profe menciono en el curso, pero aun tengo una duda, esas im谩genes, al momento de ponerlas en mi app la dejan muy pesada. Ustedes saben que puedo hacer para que esto no pase. Me han dicho que toca mandarlas desde una direccion que este en internet pero aun no me queda claro donde ponerlas o que programa o plataforma sirve para guardar las imagenes y que me mande un enlace donde yo las pueda subir a la base de datos. Si alguno de ustedes sabe quedar铆a totalmente agradecida por la informaci贸n.

Estoy teniendo un problema para cambiarle el color al bot贸n de login, aunque ponga el comando siempre queda con el mismo color el c贸digo del boton es este : \<Button android:background="@color/verde\_claro" android:hint="@string/bottom\_login" android:layout\_gravity="center" android:layout\_width="wrap\_content" android:layout\_height="wrap\_content" android:backgroundTint="@color/colorPrimary" /> Prob茅 con los dos comando y no funciona ![](https://static.platzi.com/media/user_upload/image-189eb5e0-43a8-473a-9ed8-3ca7dbd6202a.jpg)![]()![](file:///C:/Users/asus/Desktop/Platzi.png)

otra forma de entender el wegth es con pizzas y fracciones:
si tienes dos elementos y ambos tienen un weigth de 1, entonces ambos ocuparan un espacio de 1/2
pero si uno tiene 3 otro solo tiene 1: entonces un elemento ocupara 3/4 de la columna y el otro solo 1/4 de la misma

Esta clase 9 esta super, tiene bastante contenido pero absolutamente todo es importante.

Error garrafal del curso es no actualizar con medida de que se actualice los comandos

Asi va mi login

la ruta para llegar a las carpertas drawable es:

\app\src\main\res

Esta es mi interfaz馃槑, espero os guste.


Pero no entiendo porque no me cambia de color el login馃

<ImageView
    android:layout_width="140dp"
    android:layout_height="140dp"
    android:src="@drawable/logo"
    android:layout_gravity="center"
    />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="UNIVERSIDAD MILITAR NUEVA GRANADA"
    android:layout_gravity="center"
    />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="ESPECIALIZACION EN GEOMATICA"
    android:layout_gravity="center"
    />
<Space
    android:layout_width="match_parent"
    android:layout_height="80dp"/>
<EditText
    android:drawablePadding="12dp"
    android:drawableStart="@drawable/vector_person"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:hint="@string/hint_usuario" />

<EditText
    android:drawablePadding="12dp"android
    android:drawableStart="@drawable/vector_key"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:hint="@string/hint_password"
     />

<Space
    android:layout_width="match_parent"
    android:layout_height="80dp"/>

<Button
    android:background="@color/amarillo"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_login" />

</LinearLayout>

Unidades

  • px es un pixel.
  • dip o dp son p铆xeles de densidad independiente (density-independent pixels).
  • sp son pixels de escala independiente (scaleable pixels).


DP, los pixeles de densidad independiente
Son unidades flexibles que se escalan a dimensiones uniformes en cualquier pantalla. Cuando desarrolle aplicaciones para Android, utilice dp para mostrar los elementos uniformemente en pantallas con diferentes densidades.

Un dp es igual a un pixel en una pantalla de densidad de 160 . Para calcular dp:

dp = (ancho en p铆xeles * 160) / densidad de la pantalla.


SP, los p铆xeles de escala independient
Scale-independent-Pixels en ingl茅s, tienen la misma funci贸n que los dp , la diferencia es que se aplican a textos, en el caso de Android para TextView o cualquier otro elemento que soporte una fuente.

El valor por defecto de un sp es el mismo que el valor por defecto de un dp . Por ejemplo:

TextView
android:id="@+id/textView"
android:text="Tama帽o de texto 25sp (Scale-independent-Pixels)"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="25sp"

La diferencia principal entre un sp y un dp es que el sp preserva los ajustes del usuario respecto a la fuente . Los usuarios que tengan ajustes para agrandar el texto ver谩n que el tama帽o del texto concuerda con sus preferencias. Por ello, se recomienda el uso de esta unidad de medida para fuentes.

Uff, en este s铆 me demor茅

No suelo decir nada, pero fue un exceente video

Crear un recurso string para el Hint Usuario

Creaci贸n de vectores definidos por Android

dp density point

layout_gravity solo afecta al elemento

En esta pagina pueden escoger colores HTML

La verdad hace tiempo ve铆a esto como algo dif铆cil pero ahora se ve tan simple.
.
Y una observaci贸n. Me parece que los dise帽os en Flutter son mejores, pero siempre es bueno saber ambos.

En google pueden buscar rgb color picker para generar sus colores facilmente.

Space es un espacio vacio

weight para darle peso y el componente lo pasa para abajo

Hay un elemento llamado space que lo 煤nico que hace es dar espacio entre otros elementos.
Algunos otros atributos:
padding: da un espacio entre partes de un elemento
margin: genera un margen dentro de la dimensi贸n del elemento
drawbaleStart: inserta un drawable al inicio del elemento

Desconozco la razon por la cual Android Studio no me cambia el color de colorPrimary, colorPrimaryDark y colorAccent1 al ahora de invocarlo en el tag background, pero lo que hice fue nadamas definirlas igual y agregarle un 1 para que se llamaran diferentes y de esa forma si me las invoca.

Para poder utilizar el Vector Asset se debe de descargar el Puglin de drawable import

yo le puse un android:layout_marginTop creo que es mas facil que space

<Button
        android:layout_marginTop="20dp"
        android:background="@color/colorPrimary"
        android:text="@string/button_login"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>```

Alguien sabe por que no puedo cambiar el color del vector person, a pesar de que hago el cambio no lo refleja al momento de insertarlo en la ventana

Cuando agrego la sentencia:

android:drawableStart="@drawable/vector_person"```

Android Studio me ense帽a un error y me dice que deber铆a agregar tambi茅n la sentencia:

android:drawableLeft="@drawable/vector_person" />```

Por supuesto lo agrego y se quita el error. La raz贸n qu茅 me indica en la descripci贸n del error es que es por un problema de versiones. Alguien sabe que otro atributo puede reemplazar este para evitar tanta redundancia, puesto que me parece que escribir las dos sentencias para hacer lo mismo es innecesario. Igual no es muy relevante el problema pero me gustar铆a saber, muchas gracias si alguien me puede colaborar con la duda.

Hola, al principio no captaba los primeros temas, pero con un poco de logica en las palabras y algo de 矛ngles, es super facil

Colores:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#8BC34A</color>
    <color name="colorPrimaryDark">#689F38</color>
    <color name="colorAccent">#085494</color>

    <color name="primary_light">#DCEDC8</color>
    <color name="primary_text">#212121</color>
    <color name="secondary_text">#757575</color>
    <color name="icons">#212121</color>
    <color name="divider">#BDBDBD</color>
</resources>```

LinearLayout: Organizacion lineal
LinearLayout es el layout m谩s com煤n y m谩s sencillo.

Al agregar un LinearLayout debemos agregarle la orientaci贸n para indicar como los elementos dentro de este se acomodar谩n, vertical u horizontalmente.

<h4>Vertical</h4>

Cada elemento tratar谩 de tomar el espacio que requiere, uno despu茅s de otro. Todos los elementos tratar谩 tambi茅n de verse por pantalla

<h4>Horizontal</h4>

Con esta orientaci贸n, usualmente, los elementos se ir谩n agregando de izquierda a derecha

Tambi茅n es posible tener un LineaLayout dentro de otro y cada uno con diferente orientaci贸n. Por ejemplo un LinearLayout horizontal dentro de uno vertical:


Dentro de la carpeta res del proyecto existen multiples carpetas que comienzan con drawable y mipmap, cada carpeta corresponde a un tama帽o de pantalla (pantallas peque帽as, medianas, grandes, etc.).

Si agregamos una imagen dentro de una de estas carpetas, la imagen estar谩 disponible para usarla dentro de la aplicaci贸n.

Para acceder a ella:

android:src = "@drawavle/<nombre>"
<h4>Agregar un vector</h4>

Para agregar una vector ve al men煤 File > New > Vectos Asset.

Desplegar谩 un men煤 donde podemos darle un nombre y un tama帽o. Android ya tiene algunos vectores incluidos, puedes verlos dando clic al 铆cono al lado de Clip Art.

Una vez terminado, el 铆cono se agregar谩 a la carpeta drawable con el nombre que le dimos, en un archivo XML. Dentro de este archivo est谩n las coordenadas para que Android pueda crear la imagen, tambi茅n podemos cambiar el color desde este archivo.

Para los que quieran m谩s colores pueden ir al archivo de colors.xml en la carpeta values y agregan un tag color con el nombre que quieran y dentro ponen el c贸digo hexadecimal del color.

Para eso recomiendo p谩ginas como https://htmlcolorcodes.com/es/ o https://html-color-codes.info/ etc茅tera

las im谩genes est谩n definidas por dp:density points

Por qu茅 no me aparece el contenido de los EditText?
Los errores que me aparecen no parecen ser la solucion