Propiedades de diseño
Propiedades del texto
Propiedades de imagen
Ver propiedades
Propiedades de la barra de progreso
ancho
alto
orientación
tamaño del texto
estilo del texto
tipo de entrada
opcion ime
spinnerMode
tamaño
recurso
gravedad
gravedad de diseño
linea simple
líneas
activado
clicable
marcada
color del texto
color de pista
color de fondo
imagen de fondo
texto
pista
peso
peso total
identificador
girar
relleno
margen
altura de divisor
modo de elección
imagen
transparencia
maximo
progreso
translacion X
translacion Y
escala X
escale Y
vista personalizada
el Intento se usa para iniciar una nueva Actividad
El archivo se usa para guardar los datos localmente
El calendario se usa para calcular la hora y la fecha
el Vibrador se usa vibre el dispositivo
El temporizador se usa para retrasar ciertas acciones
pista de sonido se usa para reproducir efectos de sonido cortos
reproductor multimedia se usa para reproducir grandes archivos de sonido
Se usa un cuadro de diálogo para crear una ventana emergente
animador de objetos se usa para animar ciertas propiedades de una vista
En la actividad crear
mas bloques
al precionar el boton atras
Al iniciarse la actividad completa
Al activarse la actividad visible
En actividad ya no visible
al hacer clic
al cambiar
al seleccionar el item
al cambiar el texto
al cambiar el progreso
al comenzar a analizar tocar...
al parar de analizar tocar...
al iniciar la pagina
al finalizar la pagina
al iniciar la animacion
al finalizar la animacion
al cancelar la animacion
al cliquear el item
al cliquear por un largo tiempo
en la vista personalizada de enlace
Definir
Cuándo
En la actividad crear
al precionar el boton atras
Al iniciarse la actividad completa
Al activarse la actividad visible
On la actividad ya no es visible
cliquear
cambiar cequeao
item seleccionado
especificación de raíz en el elemento seleccionado texto de la cola modificada
iniciada la pagina
especificación de raíz en la página iniciada la página de cola terminada
progreso del cambio
La especificación de raíz en el progreso cambió la cola en el toque de seguimiento de inicio.
al dejar de tocar el seguimiento.
al animar objeto
al dejar de animar el objeto
al cancelar la animacion del objeto
item cliqueado
especificación de raíz en el elemento de cola clicada hace mucho clic
en la vista personalizada de enlace
Todo
Variable
Lista
Control
Matemáticas
Operador
vista
Componente
mas bloques
setear
a
setear
a
incrementar 1
disminuir 1
setear
a
agregar
a
insertar
a
a
llegar a
de
indice
en
contiene
agregar
a
insertar
a
a
llegar a
de
indice
en
contiene
agragar clave
valor
a
insertar clave
valor
a
a
llegar al valor
clave
de
configurar clave
valor
a
a
contiene en
clave
elimina a
de
largo de
limpiar
repetir
por siempre
detener
si
entonces
si
luego
ademas
si
no
<
=
>
y
o
no
+
-
*
/
%
elegir al azal entre
y
largo de
agregar
y
indice
de
sustraer
a
igual
contiene
remplazar todos los
con
reemplazar primero RegEx
con
reemplazar todos RegEx
con
un numero
recortar
a mayusculas
a minusculas
resolver
sin decimales
resorver
con decimal
al formato decimal
agregar codigo directamente
sumergirse
obtener píxeles de ancho de pantalla
obtener píxeles de alto de pantalla
PI (π)
E (e)
un
al cubo
mínimo de
y
máximo de
y
raíz cuadrada de
valor absoluto de
redondo
hacer techo
piso
seno
coseno
tangente
arcoseno
arcocoseno
arcotangente
expresion
en
log
grados
al radio
radio
al grado
cuando
es cliqueado
selecionar estado
selecionar estado
selecionar visibilidad
configurar cuando es cliqueado
configurar texto
el texto
selecionar color de fondo
selecionar imagen de fondo
selecionar color de texto
selecionar imagen
ajustar rotacion
la rotacion de
ajustar la trasparencia
la trasparecia de
ajustar traslacion X de
la traslacion X de
ajustar la traslaion Y de
la traslacion Y de
ajustar escala X de
la escala X de
ajustar escala Y
la escala Y de
configurar chequeo
el chequeo de
bloque de recursos
bloque para setear pista
bloque para setear lista
selecionar datos de la lista personalizada
ajustar datos de boton de opciones/string>
ajustar seleccion
la selecion de
bloque para setear la barra de progreso
el porgreso de
ajustar valor maximo
el valor maximo de
actualizar datos
actualizar datos
cargar la siguirte direccion
la direccion de
bloque para selecionar el modo de cache ajustar modo del cache
bloque pera poder volver atras
para poder volver atras
atras
siguiente
limpiar cache
limpiar historial
detener
acercar
alejar
configurar accion
configurar datos
selecionar pantalla
ingresar clave extra
valor
ajustar bandera
clave bloque para intentar setear la bandera Iniciar la actividad
Actividad clave agregar extra
finalizar
actividad/string>
la clave
configurar clave
valor
remover la llave
agregar ahora
agragar
valor
setear
valor
Formato
Diferencia
-
vibrar por
milisegundos
despues de
milisegundos
despues de
milisegundos y por siempre cada
milisegundso
cancelar
titulo
mensaje
mostrar
destruir
boton si
al cliquear
boton cancelar
al cliquear
boton neutro
Clicked
crear
iniciar
pausar
tratar de
obtener duración actual
obtener duración de la canción
resetear
liberar
está jugando
establecer bucle
está en bucle
crear cuenta máxima de flujo
identificador del sonido:
load
identificador de secuencia:
reproducir el sonido
1 +
tiempos
parar la secuencia de
poner un objetivo
propiedades
ingresar valor
valores establecidos desde bloque de animacion para el cuerpo 1
to
duración establecida
ajustar el modod de repeticion
ajustar contador de repeticion
establecer interpoladorr
iniciar
cancelar
está corriendo
Toast
copiar al portapapeles
Título del conjunto de actividades
Un índice es negativo o mayor que el tamaño de la lista
Un número no se puede dividir por cero
Un índice es negativo o mayor que el tamaño de la cadena
Lanzado para indicar que la aplicación ha intentado convertir una cadena a uno de los tipos numéricos
Declaración inalcanzable o bloque de detención fuera del bloque de repetición o bloqueo para siempre
Ocurrió cuando los parámetros de Intent no son válidos
Unir dos condiciones
Establezca la variable especificada en la condición
Variable booleana
La condición para verificar si dos cadenas son iguales
La condición para verificar si la cadena contiene un valor
Reemplaza todo el valor de la cadena al valor dado
False condition
Un bucle que nunca terminará \ n * Esto debe usarse con stop block
Obtenga el texto que el widget muestra
el estado habilitado para el widget
Verificar la condición \ n - si la condición es verdadera, los bloques dentro de la primera C se activarán, \ ny si la condición es falsa, los bloques dentro de la segunda C se activará
Verificar la condición \ n - si la condición es verdadera, los bloques dentro de ella se activarán
Cuando se ejecuta la aplicación, el bloque se activa
Establece la variable especificada en el número
Variable de número
Los dos valores colocados uno junto al otro
La longitud de la cadena
Agregar un elemento a la lista (el elemento va al final de la lista de elementos) con el contenido especificado en él
Borrar la lista
La condición para verificar si el contenido de un elemento \ &apos es el valor especificado
Elimina el elemento de la lista
Obtiene el elemento \ ' s valor
El valor de la posición del elemento
Agrega un elemento a la lista (el elemento va donde se especifica en la lista de elementos) con el contenido especificado en él.
Cuántos elementos hay en la lista especificada
Agregue un (String, String) Map a la lista de Maps
Inserta un par (clave, valor) en un Mapa en un cierto índice de la lista de mapas
Modificar un par (clave, valor) dentro de un Mapa en un determinado índice de la Lista de mapas
Comprobar si el Mapa en un cierto índice de la Lista de Mapas contiene una clave
Obtiene la (clave , valor) del Mapa en un determinado índice de la Lista de mapas
El valor de la división
El resto de la división
La condición para verificar si dos valores son iguales
La condición para verificar si un valor es mayor que el otro
La condición para verificar si un valor es menor que el otro
El valor de la resta
The valor de la multiplicación
El valor de la suma
Marca la condición si es falso, no es cierto
Une dos condiciones, pero funcionan por separado
Elige un número aleatorio entre los dos límites
Un bucle que se repite para la cantidad especificada
Establece el color de fondo para el widget
Establezca el estado habilitado del widget
Establecer la imagen seleccionada como el contenido de ImageView
Establecer el texto del widget
Establecer el color del texto del widget
Mostrar el texto en la notificación popup
Detener el bucle envuelto
El primer índice de la cadena dada, o -1
Establecer la variable especificada en la cadena
Variable de cadena
Una cadena que contiene el subsecuencia dada de la cadena
Convierte al número
Convierte a cadena
Condición verdadera
Devuelve una cadena sin espacios al principio o al final
Establece la acción de Intento que se realizará \ nIntent: un componente para cargar una Actividad ( ver) \ n-ACTION_CALL: realizar una llamada a alguien especificado por los datos (permiso: CALL_PHONE) \ n-ACTION_DIAL: marcar un número según lo especificado por los datos (sin permiso) \ n-ACTION_VIEW: mostrar los datos al usuario \ n * Debe agregar \ ' Intent \ ' en [Componente] para usar esto
Establecer condiciones especiales que controlan cómo se maneja esta intención \ n-SINGLE_TOP: Las vistas generalmente se mantienen como una baraja de cartas, apiladas una encima de la otra. Este bloque hace que la aplicación administre las vistas de manera tal que si la vista a la que está a punto de realizar la transición ya se llamaba antes, llevaría esa vista al frente en lugar de poner una nueva vista en la parte superior. \ N-CLEAR_TOP: borra todos las vistas anteriores en la vista actual. \ n * Debe agregar \ ' Intent \ ' en [Componente] para usar esto
Establezca los datos de este Intent en \ n-ACTION_CALL: debe comenzar con "tel:" \ n (EX: "tel: 021111111) \ n-ACTION_DIAL: debe comenzar con" tel: "\ n ( EX: "tel: 021111111) \ n-ACTION_VIEW: debe seguir el formulario de URL que comienza con" http: "o" https: "\ n (EX:" http://google.com ") \ n * Un error en tiempo de ejecución puede ocurrir si no sigue la recomendación \ n * Debe agregar \ ' Intent \ ' en [Componente] para usar esto
Establezca la Actividad (Vista) a realizar \ n * Debe agregar \ ' Intent \ ' en [Componente] para usar esto
Enlazar los datos a Intención \ n * Enviar a la actividad con la tecla: formato de valor \ n * La intención puede tener varias claves y valores \ n * Debe agregar \ ' Intención \ ' en [Componente] para usar esto
Obtener los datos de Intent \ n * Solo se puede recuperar el valor guardado por el bloque Intent PutExtra \ n * Obtener la cadena vacía ("") cuando la clave no existe \ n * Debe agregar \ ' Intent \ ' en [Componente] para usar esto
Iniciar una nueva Actividad por Intención \ n * Puede ocurrir un error de tiempo de ejecución si los parámetros de Intención no son válidos \ n * Debe agregar \ ' Intención \ ' en [Componente] para usar esto
Finalizar la actividad actual
Recuperar un valor del archivo de preferencia \ nEl valor guardado por File SetData puede recuperarse \ n * Debe agregar \ ' File (Preferencia compartida) \ ' desde [Componente] para usar esto
Establezca un valor en el archivo de preferencias \ n * La aplicación puede tener varios archivos y un archivo puede tener varios valores \ n * las claves en el archivo deben ser únicas. Si la misma tecla se utiliza varias veces, solo se puede acceder al último valor guardado \ n * formato - clave: valor \ nEx) clave: new_memo, valor: hello \ n * Debe agregar \ ' Archivo (Shared Preference \ ' desde [Componente] para usar esto
eliminar datos de archivo con la siguiente clave
Obtener la fecha y hora actual \ n * Debe agregar \ ' Calendario \ ' desde [Componente] para usar esto
Agregue la cantidad de tiempo dada al campo Calendario \ n * Valor positivo: agrega tiempo \ n * Valor negativo: resta tiempo \ n * Necesita agregar \ ' Calendario \ ' desde [Componente] para usar esto
Establezca el campo Calendario en un valor específico \ n * Debe agregar \ ' Calendario \ ' desde [Componente] para usar esto
Formatear el Calendario como una cadena usando el patrón \ nAño (y) | Mes (M) | Día (d) \ nHora (h) 1 ~ 12 | Hora (H) 0 ~ 23 | Minuto (m) | Segundo (s) \ nEx: aaaa-MM-dd hh: mm: ss (2106-01-01 03:01:02) \ nEx: aaaa-MM-dd HH: mm: ss (2106-01-01 15: 01:02) \ nEx: aaaa-MM-dd (2106-01-01) \ nEx: hh: mm: ss (12:01:02) \ n * Un error de tiempo de ejecución si el formato de cadena dado no es válido \ n * Debe agregar \ ' Calendar \ ' desde [Componente] para usar esto
Obtenga las diferencias entre los calendarios (tiempo) \ nUnidad: milisegundos \ n * Debe agregar \ ' Calendario \ ' desde [Componente] para usar esto
Valor de incremento en 1
Decrement Value by 1
actualizar Spinner \ nRefresh Lista del Item usando Spinner
poner datos al Spinner \ nDatos Formato: String
Seleccionar un elemento spinner en un índice dado \ nSetting un índice mayor que el número de elementos en el spinner dará como resultado un error de tiempo de ejecución
Obtiene el índice del elemento spinner seleccionado \ nIndex comienza desde 0
Establecer datos visuales de la lista \ nEstablecimiento de datos para una lista visible \ nData Formato: String
Inflar el diseño CustomView en un elemento
Actualizar Lista visible \ nRefresh los datos la lista
Establecer el valor de un elemento Lista en un índice dado \ nSólo funciona cuando el modo de elecion para una lista es simple o múltiple \ nEstablecer un índice mayor que el número de elementos en Lista resultará en un error de tiempo de ejecución
Obtiene el índice del elemento ListView seleccionado \ nOnly Works cuando ChoiceMode para ListView es único o múltiple
Obtiene una matriz de índices para los elementos ListView seleccionados \ nOnly Works cuando ChoiceMode para ListView es o bien único o múltiple
Obtiene el número de elementos de ListView seleccionados \ nSólo funciona cuando ChoiceMode para ListView es simple o múltiple
Obtiene el estado de una casilla de verificación \ nEs cierto si está marcado, de lo contrario es falso
Establezca el estado de una casilla de verificación \ nCompruebe si se establece como verdadero, de lo contrario se desmarca
Establezca la rotación en un widget
Obtenga la rotación de un widget
Establecer el valor alfa de un widget
Obtener el valor alfa actual de un widget
Establecer la traducción X valor de un widget
Obtener el valor X de la traducción actual de un widget
Establecer la traducción Y valor de un widget
Obtener la traducción actual Y valor de un widget
Establecer la escala X valor de un widget
Obtener el valor actual escala X valor de un widget
Establezca la escala Y del valor de un widget
Obtenga la escala actual Y del valor de un widget
Establezca la visibilidad de un widget \ nVisibilidad Propiedades \ n- VISIBLE: esta vista es visible \ n- INVISIBLE: esta vista es invisible, pero todavía ocupa espacio para fines de diseño \ n- GONE: esta vista es invisible, y no requiere espacio para propósitos de diseño.
Vibrar por la cantidad de tiempo establecida \ n- Unidad de tiempo: milisegundo \ n * Debe agregar \ ' Vibrador \ ' desde [Componente] para usar esto
Ejecutar los bloques después de un período de tiempo determinado \ n- Unidad de tiempo: milisegundos \ n * Solo puede configurar una tarea por temporizador \ n * Debe agregar \ ' Temporizador \ ' desde [Componente] para usar esto
Ejecutar los bloques después de un período de tiempo establecido para cada período de tiempo establecido \ n- Unidad de tiempo: milisegundos \ n * Solo puede configurar una tarea por temporizador \ n * Debe agregar \ ' Timer \ ' desde [Componente] para usar esto
Cancela la tarea del temporizador designado \ n- Unidad de tiempo: milisegundo \ n * Debe agregar \ ' Temporizador \ ' desde [Componente] para usar esto
Reemplaza el primer valor de cadena con el valor dado
Reemplaza todo el valor de cadena con el valor dado
Cambia todos los caracteres a valor de mayúscula
Cambia todos los caracteres de la cadena a minúscula
Convierte el número en una cadena que incluye el valor decimal
Se utiliza para formatear números en un determinado punto decimal. \ nEx: Formando números a 2 decimales toma la entrada de 0.00
Valor de Pi, 3.14159...
Valor de e, 2.71828...
Calcula la potencia nth del valor dado
Calcula el valor más pequeño entre dos valores
Calcula el valor más grande entre dos valores
Calcula la raíz cuadrada del valor dado
Calcular el valor absoluto del valor dado
Redondear el valor dado arriba o abajo
Redondear el valor dado arriba
Redondear el valor dado abajo
Calcule la función seno del valor dado
Calcule la función coseno del valor dado
Calcule la función tangente del valor dado
Calcula la función arcosine del valor dado
Calcula la función arccosine del valor dado
Calcula la función arctangent del valor dado
Calcula la función exponencial del valor dado
Calcular el registro natural del valor dado
Calcular el registro basado en 10 del valor dado
Convertir el valor dado a Radian de Degree
Convertir el valor dado a Degree de Radian
Calcular el valor del dip de dispositivo (dp) usando la entrada
Recupere el tamaño del ancho del dispositivo en píxeles
Recupere el tamaño de altura del dispositivo en píxeles
Cargar la url al WebView
Recuperar la url del WebView actual
Activar o desactivar el guardar el caché
Comprobar si la página anterior está disponible
Comprobar si hay próxima página disponible
Volver a la página anterior
Avanzar una página
Limpiar el caché de los sitios web
Limpiar el historial de navegación anterior
Force detiene la carga
Zoom en el WebView
Zoom fuera del WebView
Set el título de la actividad actual
Establecer el mosaico para el diálogo actual
Establecer el mensaje de cuerpo para el diálogo
Determinar la acción para OK Presionado
Determinar la acción para Cancelar Presionado
Determinar el action for Neutral Button Pressed
Mostrar el cuadro de diálogo
Cerrar programadamente el diálogo
Inicializar el MediaPlayer con un sonido
Iniciar el MediaPlayer
Pausar el MediaPlayer
Busca el MediaPlayer en milisegundos determinados
Obtenga la duración actual en milisegundos
Obtenga la duración del sonido en milisegundos
Verifique si MediaPlayer está reproduciendo
Habilite o deshabilite el ciclo para el sonido
Verifique si el sonido está en bucle
Restablecer el MediaPlayer al estado inicial, buscando a 0 milisegundos
Liberar el sonido que MediaPlayer está manteniendo
Inicializar cuántos sonidos puede contener el grupo
Cargue la agrupación con un sonido. Devuelve soundID (número)
Reproduce el sonido con el soundID correspondiente. Devuelve el streamID (número)
Detiene el sonido con el streamID correspondiente
Establece el valor del progreso del SeekBar
Recupera el valor actual del SeekBar
Establece el valor máximo del SeekBar
Recupera el valor máximo actual de SeekBar
Establezca el objetivo deseado para la animación
Establezca la propiedad de animación deseada
Establezca el valor valor deseado para la propiedad
Establezca el valor inicial y de resultado para la animación
Establezca la duración de la animación
Establezca si la animación debe repetirse o no
Establezca cuántas veces debe repetirse la animación
Establezca el tipo de interpolador para la animación
Inicie la animación
Cancelar la animación
Comprobar si la animación está ejecutándose
Agregar el código fuente de Java directamente
Añadir texto en tu aplicación
Agregar TextView y cambiar el valor del texto
Incrementar el tamaño de fuente
Hacer el texto en negrita
Cambiar el color del texto
Usar el bloque ajustar texto para cambiar el valor del texto
tuto_textview_title_5 unirse a su nombre y apellido juntos
tuto_textview_title_6 Mostrando un mensaje tostada con el TextView \ ' s de valor
tuto_textview_title_7 Creación de una aplicación de la magia 8-Ball
tuto_textview_title_8 lugar y posición de widgets diferente
La colocación de los widgets horizontalmente
Depositar verticalmente
diseños Cambio de tamaño a diferentes tamaños
Alinear widgets en el diseño
Crear diseños sensibles al tamaño de pantalla
Mezclar diseños verticales y horizontales
Hacer un diseño desplazable
Realizar acciones cuando un botón se hace clic
Similitudes y diferencias entre una vista de texto y un botón
Deshabilitar un botón
Cambiar el valor de View de TextView cuando se hace clic en un botón
Tomar entrada de usuario
Insinuar al usuario para la entrada
Configurar el valor predeterminado del cuadro de entrada
Configurar el número máximo de líneas que puede mostrar una entrada
Deshabilitar el cuadro de entrada
Cambiar el tipo de teclado para diferentes tipos de entrada
Mostrar la entrada actual del usuario cuando se hace clic en un Botón
Activar eventos cada vez que se cambia el valor de entrada
Crear un validador de entrada personalizado
Mostrar imágenes fascinantes
Agregar una imagen
Comprender diferentes tipos de escala
Crear una presentación de diapositivas de imágenes usando un ScrollView
Comprender las imágenes de 9 parches
Activar y desactivar
Comprender la casilla de verificación y cambiar
Alternar el chequeo programáticamente
Mostrar/ocultar una imagen basada en el estado verificado
Diseña profesionalmente tu aplicación
Comprensión de relleno y propiedad de margen
Diseño de gravedad vs gravedad
Girar un widget
Hacer un widget transparente
Crear una carga hilandero
Navega a una pantalla diferente o aplicaciones
Apertura de la aplicación nativa del teléfono Android
Abrir un navegador web mediante programación
Navegando a una pantalla diferente
Comprender el setFlag bloque
Guardar y recuperar datos localmente
Guardar y recuperar datos
Eliminar datos
Crear una página de inicio de sesión / inicio de sesión
Recordar una opción para el próximo inicio
Averigua a qué hora es
Recuperación de la hora actual
Agregar valor de tiempo al componente de calendario
Encontrar la diferencia entre dos veces
Configurar un valor de tiempo específico
Crear un reloj digital aplicación
Vibrar tu dispositivo
Vibrar tu dispositivo
Retrasar tus acciones
Mostrar un mensaje después de 3 segundos
Aumentar un número cada 1 segundo
Animar a un guepardo en ejecución (Sprite)
Crear un cronómetro
Agregar un poco de sabor a tu aplicación
Agregar y reproducir un archivo de sonido
Reproducir y pausar archivo de sonido
Infinitamente enlazando un sonido
Obteniendo la duración de la canción
Crear un piano de 3 teclas
Diseñar un reproductor de música
Aprender y optimizar tu lógica
Intercambiar dos valores de TextViews
Imprimir un triángulo de asteriscos
Comprobar si un número es par o impar
Invertir los elementos de una lista creando una nueva lista
Crear una baraja de tarjeta (1/2 )
Barajar una baraja de cartas (2/2)
Calculando cuántas veces se repite una palabra
¡Bienvenido al tutorial!
Toque la pantalla para continuar
Objetivo
Ver objetivo
Logic Goal
Logic Recap
Logic Explained
Haga clic en la categoría% s
Explicación Continuación
Prerrequisito
Resumen
Resumen continuado
Haga clic en el botón "Copiar"
Haga clic en el botón "Pegar" para pegar el bloque que copió
Haga clic en la categoría% s
Haga clic en la pestaña% s
Haga clic en propiedades
Mantenga presionada la tecla \ "% s \" widget
Mantenga presionada la tecla \ "% s \" layout
Mantenga presionada la tecla \ "% s \" block
Agregue el evento% s haciendo clic en el botón +
Agregue el componente% s con el nombre de \ "% s \"
Agregue el componente% s con el nombre de \ "% s \" y el nombre de archivo de \ "% s \"
Algo salió mal. Haga clic en propiedades nuevamente
Algo salió mal. Haga clic nuevamente en el evento
Seleccione% s
Seleccione la opción% s
Elija el% s dentro del menú
Elija la \ "% s \" image
Agregar una vista de actividad named \ "% s \"
Agregue un archivo de sonido y asígnele un nombre \ "% s \"
¡Tu \ "% s \" se ha agregado con éxito!
Intenta ejecutar e instalar este ejemplo para probarlo
¡Felicidades!
Has completado el tutorial
¡Buen trabajo!
Presione el botón Atrás para volver al editor
Presione el botón Atrás para ver el cambio
Presione el botón Atrás para guardar
Suelta el% s en el diseño% s
Suelta el \ "% s \ "en el editor
Colóquelo debajo de \"% s \ "block
Colóquelo en el bloque \ "% s \"
Colóquelo dentro del bloque \ "% s \" bloque
Colóquelo dentro de la condición del bloque \ "% s \" block
Colóquelo dentro del primer parámetro del bloque \ "% s \"
Colóquelo dentro del segundo parámetro del \ "% s \" block
Seleccione \ "% s \" para el primer parámetro
Seleccionar \ "% s \" para el segundo parámetro
Establecer \ "% s \" para el primer parámetro
Establecer \ "% s \" para el segundo parámetro
Dado que el cambio ocurre cuando se inicia la aplicación, necesitará EJECUTE la aplicación
¡Perfecto! Así es como puedes agregar widgets al editor
Podemos cambiar el valor del texto editando su propiedad
La propiedad "texto" se puede cambiar para alterar el valor del texto
Prueba a cambiar el valor del texto a lo que quieras
Intenta cambiarlo a cualquier otra cosa que no sea \ "% s \"
El valor del texto ha cambiado
Cambiar el tamaño de la fuente
Haga clic en TextView para mostrar la pestaña Propiedades
Intente aumentar o disminuir el tamaño de fuente
Pruebe a cambiar el tamaño de fuente a un valor diferente
El tamaño de fuente ha sido changed
Haz textView en negrita a través de sus Propiedades
Haz clic en TextView para mostrar la pestaña Propiedades
Elija la opción \ "bold \" para el estilo de texto
Pruebe a cambiar el estilo de texto a \ "% s \"!
¡TextView ahora está en negrita!
Cambiar el color de TextView
Hacer clic en TextView para mostrar la pestaña Propiedades
Elegir un nuevo color de texto
Elegir un nuevo color de texto que no sea \ "% s \ "
El color del TextView ha sido cambiado
Cambiar el valor de TextView usando el Editor de lógica
Esta es la pestaña Lógica
La pestaña lógica está compuesta de eventos. Por ejemplo, hacer clic en un botón sería un evento
[onCreate] evento se proporciona de manera predeterminada. Es un evento que siempre se activa una vez cuando se inicia la aplicación
Permita que \ ' s edite este evento para cambiar el valor de TextView cuando se inicia la aplicación
Debes terminar este evento
Aquí programas cómo se comporta tu aplicación con bloques
Puedes usar el bloque setText para cambiar los valores de texto
Cambiar el texto valor a lo que quieras
Cambiarlo a cualquier otro que no sea \ "% s \"
Usa el bloque de operador para unirte con tu nombre y apellido
Edita este evento para cambiar el valor de TextView
Debes terminar este evento
Haz clic en el Operator tab
Escribe tu nombre aquí
Don \ ' t déjalo vacío
Escribe aquí tu apellido
Use el bloque [Toast] y [getText]
Permita que \ ' s edite este evento para mostrar un mensaje cuando comience la aplicación
Necesita terminar este evento
Since el cambio ocurre cuando se inicia la aplicación, deberá ejecutar la aplicación
Crear una aplicación Magic 8-Ball
¿Qué es un Magic 8-Ball?
El Magic 8-Ball es un juguete utilizado para adivinar o buscar consejos, desarrollado en la década de 1950 y fabricado por Mattel. A menudo se usa en la ficción, a menudo para el humor relacionado con sus respuestas precisas, imprecisas o estadísticamente improbables
Este es el Magic 8-Ball
Cuando se presiona el botón, cambiaremos el texto "respuesta"
Este es el texto de respuesta, que dará respuestas "Sí" o "No"
El evento [ask_button \ ' onClick] se dispara cada vez que se hace clic en el botón. Permita que \ ' s edite este evento
1. Cuando se hace clic en el botón preguntar \ n2. Genera un número aleatorio entre 0 y 1 \ n3. Si el número es 0, muestre "No"; de lo contrario, si 1, muestre "Sí"
Puesto que queremos un valor de 0 o 1, ponga "0" aquí
Let \ ' s put \ "% s \" aquí
En nuestra primera condición, vamos a verificar si el número aleatorio es 0. Ponga \ "% s \" aquí
Seleccione el \ "% s \" TextView
Vamos a cambiar el valor del texto a \ "% s \"
Cada vez que se hace clic en el botón preguntar, generamos un número aleatorio entre 0 y 1. \ nSi el número generado es 0, hacemos que el Magic 8-ball diga "Sí", de lo contrario "No."
Coloca widgets horizontalmente
Coloca el diseño en el editor
tuto_layout_1_1 La disposición recibe automáticamente el ancho de "match_parent", ya que \ ' sa horizontal diseño
Nos tuto_layout_1_2 \ ' re va a añadir dos TextView \ ' s para el diseño
tuto_layout_1_3 Añadir la Vista de Texto a la disposición
tuto_layout_1_4 la caída de la primera TextView dentro del diseño
tuto_layout_1_5 Let \ ' s agregue más TextView a la disposición
tuto_layout_1_6 la caída de la Vista de Texto a la derecha de la primera TextView
tuto_layout_1_7 se puede ver que el diseño toma en niños horizontal
tuto_layout_1_8 Lugar widgets de forma vertical
La caída de la disposición en el editor
tuto_layout_2_1 La disposición recibe automáticamente la altura de "match_parent", ya que \ ' sa disposición vertical
Nos tuto_layout_2_2 \ ' re va a añadir dos TextView \ ' s a la disposición vertical
tuto_layout_2_3 Añadir al TextView a la disposición
tuto_layout_2_4 la caída de la primera TextView dentro del diseño
tuto_layout_2_5 Let \ ' s agregue más TextView a la disposición
Añadir tuto_layout_2_6 una TextView más a la disposición
"Suelta el TextView debajo del primer TextView
Puedes ver que el diseño toma verticalmente a los niños
Cambia el tamaño de los diseños a diferentes tamaños
Te proporcionamos este diseño. Haz clic en el layout
Vamos a cambiar el tamaño de este diseño modificando su propiedad
Primero trataremos de cambiar el ancho del diseño
Intenta cambiar el ancho a "match_parent"
La propiedad "match_parent" cambia el ancho del diseño para que coincida con su padre \ ' s width
Dado que el diseño raíz es el padre y llena toda la pantalla, la El ancho de diseño de "match_parent" llena toda la pantalla
Vamos a probar otra opción
Intenta cambiar el ancho a \ "% s \"
La propiedad "wrap_content" cambia el ancho del diseño para envolver lo que está dentro
Como el diseño no tiene nada, se reduce a su tamaño más pequeño
Let \ ' ¡Prueba la última opción!
Intenta cambiar el dp a cualquier valor mayor que \ "% s \"
"dp" asigna un ancho fijo al diseño
Alinea los widgets en el diseño
Le proporcionamos este diseño horizontal. Haga clic en el diseño
El diseño que proporcionamos tiene el ancho y la altura de "wrap_content"
Vamos a hacer que este diseño ocupe toda la pantalla
Intenta cambiar el ancho a " match_parent "
Intenta cambiar la altura a "match_parent"
Dado que el ancho y el alto son ambos "match_parent", el diseño llena toda la pantalla
Vamos a agregar un TextView al diseño
Coloca el TextView en el editor
¡Perfecto! Ahora, vamos a alinear el TextView al centro del diseño
Haz clic en el diseño lineal que contiene TextView
Vamos a cambiar sus propiedades
Gravity maneja el posicionamiento de sus widgets para niños
Selecciona "center_horizontal" de las opciones
Puedes ver que TextView ahora está alineado horizontalmente en el centro
Vamos a intentar agregar un diferente gravedad
Seleccione las opciones "center_horizontal" y "center_vertical" de las opciones
Puedes ver que TextView ahora está alineado en el centro
Crea diseños receptivos que son proporcionales en cualquier tamaño de pantalla del dispositivo
Proporcionamos dos diseños con el ancho de "match_parent"
Vamos a cambiar sus propiedades para que la altura de la relación de diseño Azul a Verde sea de 1: 3
Primero , vamos a editar la propiedad de disposición azul
La propiedad de peso determina la cantidad de "proporción" del diseño primario que debe tomar
El peso se compara proporcionalmente con otros niños \ ' s peso en el mismo diseño
Intente cambiar el peso a \ "% s \"
Dado que el peso del diseño azul es 1 y el peso del diseño verde es 0, El diseño azul ocupa la mayor cantidad posible de espacio
Ahora, vamos a editar \ ' s propiedad
También cambiaremos su peso
Dado que ambos diseños tienen una peso de 1, ocupan la misma cantidad de espacio con la proporción de 1: 1
Vamos a intentar cambiar el peso verde a \ "% s \"
Dado que el diseño azul tiene un peso de 1 y el diseño verde tiene un peso de 3, toman subir el espacio con la proporción de 1: 3
Mezclar diseños orientados de forma diferente
Suelta la disposición horizontal en el editor
Vamos a hacer que este diseño llene toda la pantalla
Prueba a cambiar la altura a "match_parent"
Dado que la ancho y alto son ambos "match_parent", el diseño llena toda la pantalla
Vamos a agregar diseños orientados de manera diferente al diseño que hemos colocado anteriormente
Coloca el diseño en la disposición horizontal colocamos previamente
Vamos a agregar dos vistas de texto a la disposición vertical que acabamos de colocar
Agregar dos vistas de texto a la disposición vertical
Coloca el primer TextView dentro del diseño vertical
Deja que \ ' s agregue otro TextView
Coloca el TextView en cualquier lugar dentro del diseño vertical
Los widgets se colocan horizontal y verticalmente dependiendo de la orientación del diseño al que los agregue
Soltar el diseño a la derecha de la disposición vertical
Vamos a agregar dos TextView \ ' s en el diseño horizontal que acabamos de colocar
añadir dos TextView \ ' s en el diseño horizontal que acaba de colocar tuto_layout_6_15
La caída de la primera TextView a la disposición
tuto_layout_6_16 Let \ ' s agregue más TextView a la disposición
tuto_layout_6_17 la caída de la TextView en cualquier lugar dentro de la disposición horizontal
tuto_layout_6_18 la TextView \ ' s se colocan horizontalmente dentro de la disposición horizontal
Nos tuto_layout_6_19 \ ' hemos añadido widgets de éxito en diferentes orientaciones utilizando diseños con orientación diferente
Haz un diseño desplazable
Suelta el diseño de desplazamiento en el editor
Los diseños de desplazamiento pueden tomar solo UN diseño o widget
Cualquier cosa dentro del diseño de desplazamiento se vuelve desplazable, incluso widgets
Sin embargo, es ideal para agregar un diseño lineal dentro del diseño de desplazamiento
Soltar el diseño lineal horizontal dentro del diseño de desplazamiento
El desplazamiento y el diseño lineal generalmente comparten la misma orientación. En este caso, ambos son horizontales
Vamos a agregar un TextView largo dentro del diseño horizontal para forzar el diseño a desplazarse
Coloca el TextView dentro del diseño lineal
Let \ ' s aumenta este ancho de TextView \ ' s por lo que el diseño se vuelve desplazable
Intenta cambiar el dp a \ "% s \"
Intenta ejecutar e instalar este ejemplo para probarlo
Comprender las similitudes y las diferencias entre un TextView y un Botón
Suelta el botón en el editor
Un botón comparte las mismas propiedades de texto con TextView
Por ejemplo, puede cambiar el texto de un botón editando la propiedad "text"
Let \ ' s volver al editor presionando el botón Atrás
A diferencia de TextView, el evento "onClick" de Button \ "se genera automáticamente cada vez que se agrega un widget Button al Editor de vistas
Este evento se dispararía cada vez que se haga clic en el Botón
Necesitas terminar este evento
Deshabilitar el botón
Le proporcionamos este botón. Haga clic en él
Puede desactivar el botón editando su propiedad "habilitada"
Alternar el interruptor para deshabilitar el botón
Dejar que \ ' s volver al editor
Deshabilitar el botón cuando se hace clic
Soltar el botón aquí
Vamos a editar el botón \ ' s evento clickClick
Cambiar el valor de TextView cuando el botón se hace clic
Soltar el botón debajo de TextView
El evento onClick del botón se dispara cada vez que se hace clic en el botón
Vamos a editar el evento para que el texto cambie cuando se hace clic en el botón
Haz clic en la pestaña Ver para encuentra el bloque setText
Cambia el valor del texto a lo que quieras
Cambia el valor a cualquier cosa que no sea \ "% s \"
Cambia la sugerencia de un cuadro de entrada
EditText tiene la sugerencia predeterminada de "Editar texto"
"sugerencia" es el valor de texto que sugiere al usuario lo que debe ingresar
Vamos a cambiar el valor de sugerencia editando su propiedad
La "sugerencia" La propiedad maneja el valor del texto de la indirecta.
Intente cambiarlo a cualquier valor sugerido que desee
El valor sugerido ha cambiado
Cambiar el valor de texto predeterminado de un cuadro de entrada
EditText tiene un valor de texto vacío hasta que el usuario escriba algo en
Puede establecer inicialmente el valor del texto editando su propiedad
Vamos a cambiar el valor del texto predeterminado editando su propiedad
La propiedad "text" maneja el valor de texto del EditText
Prueba a cambiar el valor del texto a cualquier valor que desees
¡Intenta cambiarlo a cualquier cosa que no sea un valor vacío!
El valor de texto predeterminado se ha cambiado
Establezca el número máximo de líneas que puede mostrar una entrada
De forma predeterminada, EditText solo muestra una línea de texto
Let \ \ n cambiar el número de líneas que muestra editando su propiedad
La propiedad "líneas" determina cuántas líneas mostrará EditText
Pruebe a cambiar el valor a% s
El widget EditText ahora puede mostrar las líneas de texto% s
Deshabilitar el cuadro de entrada
A veces, podemos deshabilitar el widget EditText para que el usuario no pueda ingresar nada
Let \ ' s deshabilitarlo editando su propiedad
Desactívelo haciendo clic en el modificador
El EditText está deshabilitado y el usuario no podrá ingresar ningún valor
Cambia la propiedad de tipo de entrada a "textPassword"
A veces, podemos querer que el EditText tome información sensible como la contraseña y la censure
Vamos \ ' s cambiar el tipo de entrada editando su propiedad
Vamos a cambiar el tipo de entrada a "textPassword"
El texto de edición ahora censurará el valor de texto que toma
Mostrar el valor de entrada actual cuando se hace clic en el botón
Cuando se hace clic en el botón, deseamos mostrar el valor actual de EditText
El botón \ ' s evento onClick se dispara cada vez que se hace clic en el botón
Permitir \ ' s editar el evento para que el valor de texto de EditText aparezca cuando se hace clic en el botón
Incendiar un evento siempre que se ingrese un nuevo valor
Cuando el usuario ingrese cualquier valor en EditText, vamos a mostrarlo nuevamente en la pantalla
A diferencia del widget Botón, los eventos de EditText \ &apos no se agregan automáticamente
El evento EditText \ "apuntaTextChanged" recibe el evento disparado cada vez que se cambia el valor del texto
Permitir \ ' s editar el evento para que el valor de texto de EditText aparezca cuando se cambia \ ' s
El bloque púrpura en el bloque raíz indica el valor de texto modificado
Colóquelo en el parámetro del bloque Toast
Cree un validador de entrada personalizado con un filtro de palabras
Cualquier entrada con la palabra "odio" activará un mensaje de advertencia
Vamos a mostrar el mensaje de advertencia aquí
Vamos a ocultar inicialmente el mensaje de advertencia cuando se inicia la aplicación
Establezca el mensaje de advertencia predeterminado en un mensaje vacío
Seleccione el \ "% s \" TextView
Dejaremos esto vacío, ya que queremos que sea una cadena vacía
El evento "onTextChanged" se ha agregado correctamente
Permitir \ ' s editar este evento para validar la oración cada vez que se produce el cambio de texto
1. Cada vez que ocurre un cambio, el evento "onTextChanged" se activa \ n2. Verifique si la entrada contiene la palabra "odio" \ n3. Si lo hace, muestre un mensaje de advertencia; de lo contrario, establezca el mensaje de advertencia como una cadena vacía
Puesto que estamos filtrando la palabra "odio", pon "odio" aquí
Colóquelo dentro de la subsección "if then"
Colóquelo dentro de la subsección "else"
Ingrese un mensaje de advertencia que desea mostrar, que no sea un valor de cadena vacío
Dejaremos esto vacío, ya que no queremos ocultar el mensaje de advertencia si no contiene ninguna palabra filtrada
Agregue una imagen de su elección
El menú botón en la esquina superior derecha contiene diferentes administradores que manejan diferentes partes de la aplicación
Dentro del Administrador de imágenes, puede agregar diferentes tipos de iconos e importar sus propias imágenes desde el rollo de la cámara
Let \ Además, intenta agregar nuestra propia imagen haciendo clic en el botón +
Importa la imagen y nómbrala \ "% s \"
ImageView tiene un ícono de Android gris de forma predeterminada
Vamos a cambiarlo a la imagen que acabamos de agregar
La imagen ha sido cambiada
Comprender diferentes propiedades del tipo de escala
Hemos proporcionado esta ImageView con el ancho y la altura de "match_parent" para ti
Haz clic en ImageView
Diferentes tipos de escala cambian la forma en que se muestra la imagen
Prueba a cambiar el tipo de escala a \ "% s \"
El tipo de escala para ImageView ha cambiado a \ "% s \ "
El tipo de escala" FIT_XY "se estira para ocupar el espacio dado, ignorando la relación de imagen
Vamos a probar una propiedad de tipo de escala diferente
" FIT_START "tipo de escala se estira para ocupar el espacio indicado, mantiene la relación de imagen y alinea la imagen superior
El tipo de escala "FIT_CENTER" se estira para ocupar el espacio indicado, mantiene la relación de imagen y alinea el centro de la imagen
El tipo de escala "FIT_END" es similar a "FIT_START" y "FIT_CENTER", excepto que alinea el fondo de la imagen
"CENTER" mantiene el tamaño de la imagen mientras lo alinea con el centro
"CENTER_CROP" escala la imagen uniformemente de modo que tanto el ancho como la altura de la imagen sean iguales o mayores que el dimensión correspondiente de la disposición
"CENTER_INSIDE" escala la imagen de manera uniforme para que tanto la anchura como la altura de la imagen sean iguales o inferiores a la dimensión correspondiente del diseño
Intente cambiar el tipo de escala a \ "% s \"
Hacer una presentación de diapositivas de imágenes desplazables
Vamos a intentar agregar nuestra propia imagen haciendo clic en el botón +
Agregue una imagen de su elección con el nombre de \ "% s \"
Nombre su imagen importada \ "% s \ "
Los diseños de desplazamiento pueden tomar solo UNA disposición o widget
Cualquier elemento dentro del diseño de desplazamiento se puede desplazar, incluso los widgets
Sin embargo, es ideal para agregar una línea diseño dentro del diseño de desplazamiento
Soltar el diseño lineal horizontal dentro del diseño de desplazamiento
El desplazamiento y el diseño lineal generalmente comparten la misma orientación. En este caso, ambos son horizontales
Vamos a agregar dos imágenes
Coloca el ImageView dentro del diseño lineal
Vamos a cambiar la imagen a través de sus propiedades
Elija \ "% s \" image
Let \ ' s agregar un ImageView más en el diseño lineal
Vamos a cambiar la imagen a través de sus propiedades
Elija la imagen \ "% s \"
Entienda nueve imágenes de parche
Nueve imágenes de parche
Nueve imágenes de parche son imágenes de mapa de bits que cambian de tamaño automáticamente para acomodar el contenido de la vista y el tamaño de la pantalla
Nine Patch Images Continuación
Vamos a aplicar una imagen de nueve parches a diferentes widgets para ver cómo se ven afectados
Haz clic en el widget TextView para editar sus propiedades
Vamos a cambiar la imagen de fondo a través de sus propiedades
Haz clic en el diseño lineal para editar sus propiedades
Haz clic en el widget Botón para editar sus propiedades
Como puedas ver, aunque utilizamos un archivo de imagen, se ajusta automáticamente al tamaño de todos los widgets/diseños
Es por eso que las imágenes de ninepatch son útiles para crear diseños sensibles en diferentes tamaños de pantalla
Comprender la casilla de verificación y el interruptor widget
Hemos proporcionado dos widgets para usted, una casilla de verificación y un conmutador
Estos dos widgets se usan comúnmente \ n para tener usuarios \/apos; s YES/NO input
Por ejemplo , por lo general, puede encontrar casillas de verificación en las pantallas de inicio de sesión, con descripciones como \ "% s \"
Switch se puede usar con el mismo concepto, solo proporciona una interfaz de usuario diferente y experiencia
Both Checkbox and Switch se utilizan para tomar la entrada SÍ/NO del usuario
Para las casillas de verificación, más de una de ellas se coloca generalmente para tomar múltiples entradas
Vamos a intentar cambiar esto para que se compruebe editando su propiedad
Alternar el \ "% s \" switch
Similar a Checkbox, puedes alternar en el Switch de la misma manera editando su propiedad
Activa la casilla de verificación con un clic de un botón
Suelta el botón debajo de CheckBox
Cuando se hace clic en el botón, verificaremos/desmarcaremos la casilla de verificación según su estado actual
Vamos a editar el botón de evento onClick para que el estado de verificación cambie cuando se hace clic en el botón
Antes de continuar, pensemos en cómo deberían ser los bloques colocado
1. Obtenga el estado actual de la casilla \ n2. Si la casilla de verificación está marcada, desactívela \ n3. De lo contrario, compruébelo
Vamos a aprender más sobre% s block
Los bloques en "if (condition) then" se ejecutan si la condición es verdadera, de lo contrario los bloques en "else" se ejecutará
Alternar la visibilidad de una imagen con a con un CheckBox
Suelta la casilla de verificación debajo de ImageView
Cuando se hace clic en la casilla de verificación, mostraremos/ocultaremos la imagen
Primero, vamos a cambiar el texto de la casilla
Prueba a cambiar el valor del texto a \ "% s \"
Alterna el modificador \ "% s \", ya que la imagen será visible en el primer lanzamiento
¡Agradable! El CheckBox ha sido editado
"El evento CheckBox ' s onCheckChanged" se activa cada vez que se activa el valor de control
Vamos a editar el evento para que la imagen se muestre/oculte según el valor de verificación
Antes de continuar, piense en cómo deberían colocarse los bloques
1. Si CheckBox está marcado, muestre la imagen \ n2. De lo contrario, oculte
Let \ ' s revisa el bloque if/else
Los bloques en "if (condition) then" se ejecutan si la condición es verdadera, de lo contrario los bloques en "else" serán ejecutados
El bloque morado en el bloque raíz indica el valor CheckBox modificado
Comprender la propiedad de relleno y margen
Espaciado
El espaciado entre widgets es muy importante para el diseño de la aplicación. Usamos margen y relleno para mantener el contenido separado de otros widgets, dando espacio adicional alrededor o dentro de él
Relleno
El relleno representa el espacio interior de un elemento. De forma predeterminada, Sketchware proporciona 8dp de relleno a cada widget cuando se coloca
El diseño azul tiene un relleno de% dp, por lo que hay un espacio entre dos diseños
Primero, vamos \ ' s haga clic en el diseño azul
Pruebe a cambiar el relleno a \ "% s \"
El relleno aplicado proporcionó más espacio entre dos diseños
El margen representa el espacio exterior de un elemento. De forma predeterminada, Sketchware no proporciona margen al widget cuando se coloca
Ahora, deje que \ ' s haga clic en el diseño azul para editar el margen
Intenta cambiar el margen a \ "% s \"
Ahora hay espacio en el exterior del diseño azul
Comprensión de Gravedad vs Gravedad de diseño
En el tutorial "Diseño" categoría, aprendimos a alinear los widgets usando la propiedad "gravedad"
La propiedad "gravedad" establece la gravedad del contenido de la vista que se usa en
La propiedad "layout_gravity" establece la gravedad de sí misma en su elemento primario
Vamos a intentar \ cambiar el \ "% s \"
El diseño se ha alineado al lado derecho de its parent
Rotar un widget cambiando la propiedad "rotate"
Cada widget viene con una propiedad "rotate". Por defecto, los widgets tienen un valor de rotación de 0
Vamos a intentar cambiar su valor de rotación
Intenta cambiar el valor de rotación a \ "% s \"
El diseño ha girado \ "% s \" degrees
Haz un widget transparente cambiando su valor "alfa"
Cada widget viene con una propiedad "alpha", que determina la transparencia
El valor alfa va de 0.0 a 1.0. De forma predeterminada, los widgets tienen un valor alfa 1.0 o una visibilidad del 100%
tuto_styling_4_2 Let \ ' s intentan cambiar su valor alfa
tuto_styling_4_3 Intente cambiar el valor alpha a \ "% s \"
tuto_styling_4_4 La disposición y el contenido en el interior tiene ahora \% s \ " "transparencia
tuto_styling_4_5 Crear una ruleta de carga
tuto_styling_5_0 Si usted no ha \ ' t completaron los tutoriales para 'componente Timer', por favor complete antes de probar este
Aquí, hemos proporcionado una ImageView con una imagen de rotación de carga
Empezaremos a girar la ruleta cuando se inicie la aplicación
1. Crear una variable de número de "rotación" que mantenga un registro de el valor de rotación actual \ n2. Usando el bloque "Temporizador cada", aumente el valor de "rotación" en 1 cada 5 milisegundos \ n3. Aplica el nuevo valor de rotación a ImageView
Crear una variable de número llamada \ "% s \"
La variable de rotación se utilizará para realizar un seguimiento del valor de rotación. Su valor predeterminado es 0
Vamos a ejecutar este bloque después de \ "% s \" milisegundo
Vamos a actualizar el valor de rotación cada \ "% s \" milisegundos
Seleccione la \ "% s \" Variable de número
Seleccione el \ "% s \" ImageView
Usando el bloque "Temporizador cada", aumentamos la variable de número "rotación" en 1 cada 5 milisegundos. Luego, aplicamos el nuevo valor de rotación al "spinner" ImageView
Navega a una pantalla diferente
¿Qué es una Intención?
Una intención es una "intención" para realizar una acción, como abrir una aplicación o pasar a una nueva pantalla
Al hacer clic en el botón de navegación, navegaremos a% s que \ &apos ; visto en este tutorial
Usaremos el componente Intent para navegar a una pantalla diferente
Vamos \ ' s navegar a una pantalla diferente cuando se hace clic en el botón de navegación
Cuando se hace clic en el botón, use el bloque "setScreen" y "startActivity" para navegar a una pantalla diferente
Intención setScreen
Podemos usar el bloque "Intent setScreen" para determinar a qué pantalla intentamos navegar
Podemos usar el bloque "startActivity" para llevar a cabo el intento de nuestra acción
Abra la aplicación nativa del teléfono Android
Funciones de intención
El intento se puede usar para abrir otras aplicaciones, como un navegador o una aplicación de teléfono
Vamos a intentar abrir la aplicación del teléfono nativo cuando se haga clic en este botón
Permitir \ ' s editar el botón abierto \ ondeClick evento
Seleccione la opción \ "% s \"
El bloque "setAction" determina qué acción seguirá. En este caso, establecemos la acción de la intención de abrir el "dial" o la aplicación del teléfono
Enter \ "% s \" en el segundo parámetro
El bloque "setData" puede transportar datos junto con la acción. En este ejemplo, vamos a llevar los datos telefónicos de "1234". Tenga en cuenta que el prefijo de los datos podría cambiar dependiendo de la acción
El bloque "startActivity" desencadena la acción de la Intención
Programáticamente llama a un número de teléfono
Funciones de Intento
Intent Component también se puede usar para marcar un número de teléfono mediante programación
Vamos a llamar al número deseado cuando se presione el botón de llamada
Vamos a editar el botón de llamada \ ondeClick evento
Seleccione el \ "% s \" opción
La acción \ "% s \" llama al número deseado
Enter \ "% s \" en el segundo parámetro
El bloque "setData" puede transportar datos junto con la acción. En este ejemplo, vamos a llamar al número de teléfono "1234". Tenga en cuenta que el prefijo de los datos podría cambiar dependiendo de la acción
El bloque "startActivity" desencadena la acción de la Intención
Programáticamente abre un navegador web
Abriremos el navegador cuando se hace clic en este botón
Permitir \ ' s editar el botón Abrir \ ' s evento onClick
Seleccione la opción \ "% s \"
Enter \ "% s \" en el segundo parámetro
El bloque "setData" puede transportar datos junto con la acción. En este ejemplo, \ ' re giong para abrir una vista con los datos de "https://google.com"
El bloque "startActivity" activa la acción de Intent. En este caso, el componente Intent abrirá un navegador
Transferir datos a otra pantalla
Cuando se hace clic en este botón, navegaremos a \ "% s \" y transferiremos el valor de EditText arriba
Haz clic en el selector de archivos para navegar al Editor lógico de \ "% s \"
Vamos a recibir los datos transferidos cuando la Actividad haya sido creada nuevamente dentro del evento "onCreate"
Finalizar una actividad
Actividad de acabado
Al igual que cómo podemos iniciar una actividad, podemos terminar una actividad. Aunque la función no depende del Componente de intención, está muy relacionada
Cuando esto haga clic en el botón, cerraremos la actividad actual
Vamos a editar el botón cerrar \ ' s evento onClick para cerrar la actividad
Cuando se hace clic en el botón Cerrar, cerraremos la actividad. Una vez más, tenga en cuenta que este bloque no depende del Componente de intención
Entender "bloque setFlag"
¿Qué es Flag?
En la programación, el indicador es una variable que generalmente indica algún estado del programa
"Por ejemplo, supongamos que tiene un programa que muestra una vista, pero el usuario puede alternar la visibilidad de la vista con un booleano variable llamada \ "visible \", con verdadero que lo indica \ ' s visible y falso que lo indica \ ' s no. En este caso, la variable "visibilidad" es el indicador que determina la visibilidad
Cuándo use el bloque "setFlags"?
El bloque "setFlags" solo es útil cuando quiere navegar a otra pantalla dentro de la aplicación. Se explicará con más detalle más adelante en este tutorial
Let \ ' s encuentra el bloque "setFlags" dentro del evento "onCreate"
El bloque "setFlags" solo se da cuando agrega el componente "Intent"
Tipos de banderas
Dentro de Sketchware, le proporcionamos dos tipos de bandera de intención: \ n1. SINGLE_TOP \ n2. CLEAR_TOP
El indicador superior único organiza las vistas de manera tal que si la vista a la que estás a punto de realizar la transición ya se llamaba antes, llevaría esa vista a la parte superior en lugar de poner otra copia en la parte superior.
Borrar arriba borra todas las vistas anteriores después de navegar a la pantalla deseada
1. Guarde los datos localmente \ n2. Cargue y muestre los datos guardados en TextView
Archivo explicado
Utilizando el Componente de archivo, puede guardar datos utilizando la biblioteca de preferencia compartida nativa de Android \ ' s
"Guardaremos el valor del EditText cuando presionemos este botón
Luego, cargaremos el valor de los datos guardados en este TextView
Vamos a editar el botón de guardar \ ' s evento onClick para guardar los datos cuando sea necesario
Let \ &apos ; s poner \ "% s \" como valor de clave
Colóquelo dentro del segundo parámetro del bloque "Archivo setData"
Seleccione el \ "% s \" EditText
setData Block Explained
El bloque "setData" guarda los datos localmente en el formato "[clave, valor]". Guardamos y recuperamos el valor con la misma clave
Vamos a cargar los datos guardados dentro del botón de carga \ ones evento onClick
Load Logic Goal
We \ ' volverá a cargar el valor guardado y cambiará el texto de TextView con el valor cargado
Colóquelo dentro del primer parámetro de TextView
Vamos a usar la misma clave que usamos para cargue el valor que guardó, \ "% s \"
ile Load
El componente File se puede usar en todas las pantallas para guardar y cargar el valor del mismo archivo, siempre que el nombre del archivo sea idéntico
Eliminar datos del archivo compoonent
Friendly Reminder
Este tutorial es muy similar al anterior. Si tiene \ ' t, ¡complete el tutorial anterior!
Guardaremos el valor del EditText cuando presionemos este botón
Entonces, cargaremos el valor de los datos guardados en este TextView
Nosotros hemos proporcionado el Componente de Archivos para usted
También le hemos proporcionado cierta lógica
Al igual que el anterior tutorial, guardamos localmente el valor del EditText con la clave de \ "% s \"
Let \ ' s verifique el \ "% s \" event
Aquí, cargamos los datos con la clave de \ "% s \" y actualice el valor de TextView \\
Nuestro trabajo es completar el evento \ "% s \"
Eliminar el valor del componente de archivo con la clave de \ "% s \"
Let \ ' s eliminar los datos con el valor clave de \ "% s \"
Cosas que probar después de la instalación
1. Guarde cualquier dato ingresando cualquier dato en EditText y haciendo clic en "guardar" \ n2. Cargue los datos haciendo clic en el botón "cargar" \ n3. Elimine los datos haciendo clic en el botón "eliminar" e intente cargar los datos nuevamente
Crear una página de inicio de sesión / inicio de sesión con la base de datos local
Crearemos una página donde podamos suscribirse y login
El usuario ingresará su nombre de usuario aquí
Y aquí la contraseña
Si el usuario intenta iniciar sesión con una cuenta que no existe, les diremos Regístrese primero
Y si existe una cuenta, le mostraremos un mensaje que dice "Login Success!"
Hemos proporcionado un componente de archivo \ "% s \" con el nombre de archivo de \ "% s \"
Vamos a manejar el evento de registro primero
1. Compruebe si el usuario realmente completó el nombre de usuario y la contraseña \ n2.Si uno de ellos está vacío, muestre un mensaje que indique que deben completar ambos formularios \ n3. Si ambos están completados, verifique si existe el nombre de usuario \ n4. Si no existe, guarde su información de inicio de sesión localmente "
Dentro de la instrucción if, comprobamos dos condiciones
Primero, comprobamos si el nombre de usuario tiene texto midiendo y comparando su longitud
Además, comprobamos si el usuario tecleó algo para la contraseña
Si uno o ambos no se completan, les decimos que ingresen
Seleccione el \ "% s \ "EditText
Aquí, estamos? comprobando si ya existe una cuenta con el mismo nombre de usuario. Queremos que cada nombre de usuario sea único, así que no podemos sobrescribir el nombre de usuario existente
Dígale al usuario "¡El nombre de usuario ya existe!
Primero comprobamos si se ha completado el nombre de usuario y la contraseña. Luego, comprobamos si el nombre de usuario ya está tomado. Si no se toma, guarde la información de inicio de sesión en el formato "[clave, valor]", con la clave siendo el nombre de usuario y el valor que es la contraseña
Vamos a manejar el evento de inicio de sesión ahora
La lógica es muy similar a la lógica de registro. Verificamos si el usuario ingresó la contraseña y el nombre de usuario, y luego verifica si el nombre de usuario existe en el archivo . Aquí, en cambio, cuando el nombre de usuario expira, intentamos iniciar sesión. Si la contraseña coincide con la contraseña guardada, las iniciamos. Si no se guarda ningún nombre de usuario en el archivo, les decimos que se registren primero
Tenga en cuenta que hay un bloque "no" para verificar si el nombre de usuario existe
Mostrar el mensaje% s
Hay dos casos. Si el nombre de usuario existe, intentamos iniciar sesión; si la contraseña coincide con la que se guardó, logramos iniciar sesión correctamente, de lo contrario, falla. Si el nombre de usuario no existe, alertamos al usuario para que se registre primero
Recuerde una opción para el próximo lanzamiento
Cuando se abra la aplicación, recordaremos la entrada anterior y la cargaremos
Hemos proporcionado un componente de archivo \ "% s \" con el nombre de archivo de \ "% s \"
Primero intentamos cargar desde el archivo cuando se inicia la aplicación
1. Compruebe si el valor de verificación existe en el archivo \ n2. Si existe, recupere el valor del valor de comprobación \ n3. Vamos a configurar CheckBox para que se compruebe si el valor es 1, de lo contrario no se marca
Mantendremos el valor de verificación bajo el nombre de clave de \ "% s \"
Estamos recuperando el valor con la clave de \ "% s \"
Compruebe si el valor es igual a \ "% s \"
Seleccione el \ "% s \ "CheckBox
Primero comprobamos si existe el valor de verificación en el archivo. Cuando la aplicación se abra por primera vez, no tendrá este valor. \ nSi el valor existe, actualizamos el CheckBox según su valor - 0 o 1
Guardando CheckBox State
Manejamos la parte de carga. Ahora, dejemos que \ ' s manejemos la parte salvadora
Guardaremos el nuevo valor de CheckBox cada vez que se actualice
Establezca la clave como% s
Cuando el valor del CheckBox se actualice, actualizaremos la clave de "check" dentro del Componente de archivo con el valor de 0 o 1 según el valor de verificación
Recuperar la hora actual y mostrarla con TextView
Permitir \ ' s editar el evento "onCreate" para recuperar la hora en que el la aplicación comienza
El componente de calendario \ ' s "getNow" bloquea recupera la hora actual
Formato del calendario
El calendario se puede formatear en formatos numéricos. Por ejemplo, \ n \ n1-1-1990 \ n01-01-1990 \ n1 de enero de 1990 \ n \ ntodos los formatos de fecha
Escribe el formato \ "% s \"
Este formato debería mostrar la fecha en el formato de \ "% s \"
Cuando se inicia la aplicación, el bloque "getNow" obtendrá la hora actual. Luego, estableceremos el valor de TextView \ 's en el tiempo formateado
Haz clic en el botón Atrás para volver al editor
Agregar tiempo al componente Calendario
El TextView mostrará el día actual
Cuando hagamos clic en el botón, agregaremos un día al día actual
Vamos a editar el evento "onCreate" para mostrar el día en TextView cuando se inicia la aplicación
Cambia el valor de TextView \ to a la hora actual \ ' s valor de día
Selecciona el \ "% s \" TextView
Vamos a volver a la categoría de Componentes
Dado que solo queremos el día, configura el formato como \ "% s \"
Cuando se inicia la aplicación, el componente Calendario recuperará el hora actual y cambiar el valor de TextView al día correspondiente
Permitir editar el botón Agregar día sobre el evento onClick para agregar el día
1. Agregar un día al componente de calendario \ n2. Actualice el valor de TextView \ to los valores actualizados del Calendario
Elija la opción \ "% s \"
Puesto que queremos agregar un día, agregue 24 horas
Siempre que haga clic en el botón, agregará 24 horas hasta el componente Calendario actual y actualice TextView con el nuevo valor del día
Encuentre la diferencia entre dos valores temporales
Vamos a mostrar la diferencia de dos veces aquí
Un componente de calendario puede contener un único valor de tiempo. Proporcionamos dos componentes de calendario para que pueda encontrar la diferencia entre los dos
Vamos a ver el evento "onCreate"
Aquí, ya hemos proporcionado la hora para los dos componentes del Calendario
Primero obtenemos la hora actual para el primer componente del Calendario , \ "% s \"
Entonces, obtenemos la hora actual para el segundo componente del Calendario, \ "% s \"
Por el bien del ejemplo, hemos agregado una segundo adicional al componente de calendario \ "% s \"
Diferencia horaria
Ahora, vamos a encontrar la diferencia entre estos dos componentes del calendario y mostrar el valor en TextView
Seleccione el \ "% s \" TextView
toString Block
Dado que la diferencia es un formato de número, podemos \ ' t establecer inmediatamente el texto en el valor de la diferencia. Necesitamos cambiar el formato de "Número" a "Cadena" para que los bloques coincidan
toString sin decimal
La diferencia entre "sin decimal" y "con decimal" es que " sin decimal "mostrará el Número sin ningún punto decimal
Seleccione el componente \"% s \ "Calendario
1. Establezca el componente Calendario" c2 "para que tenga 1 segundo más que el" c1 "Componente del calendario \ n2. Establezca el valor de diferencia de tiempo en el \ "diff \" TextView utilizando el bloque \ "toString \" y \ "Diferencia \" \ n3. La diferencia se mostrará en milisegundos. 1 segundo es equivalente a 1,000 milisegundos
Establecer un valor de tiempo específico
En lugar de recuperar la hora actual, a veces es posible que tengamos que asignar un valor de tiempo específico al componente Calendario
Vamos a \ ' s establecer un valor de tiempo específico y mostrarlo en este TextView
Permitir \ ' s editar el evento "onCreate" para establecer una hora específica y mostrarla
Seleccionar la opción \ "% s \"
Let \ ' s input \ "% s \ "para el año
Let \ ' s input \"% s \ "para el mes
A pesar de que ingresamos 0 para el mes, en realidad mostraría enero, ya que los meses comienzan desde 0 en el lenguaje de programación Java
Let \ ' s solo muestra el año y el mes ingresando \ "% s \ "
1. Establezca el valor AÑO en 1990 \ n2. Establezca el valor MONTH en 0 (Tenga en cuenta que enero es 0) \ n3. Actualiza TextView con el formato adecuado
Crea una aplicación de reloj digital
Vamos a usar el Calendario para recuperar el tiempo y mostrarlo en este TextView
Hemos proporcionado dos componentes, Temporizador y Calendario, para usted
Vamos a ejecutar el reloj tan pronto como comience la aplicación
1. Usando el bloque "Temporizador... cada", recuperaremos el tiempo cada segundo \ n2 Con el tiempo recuperado, formatearemos el texto y lo mostraremos en TextView
Vamos \ ' s iniciar este bloque después de% s ms
Queremos que este bloque para repetir todos los% s ms
Seleccione la tuto_calendar_5_6 \ "% s \" Vista de Texto
tuto_calendar_5_7 Enter "hh: mm: ss" para el formato, ya que queremos que el reloj " horas: minutos: segundos"
tuto_calendar_5_8 1. 'temporizador de cada' bloque recupera el tiempo cada 1 segundo \ n2. Recuperamos la hora actual usando el bloque "Calendario getNow" y actualizar el TextView con el valor recuperado
tuto_calendar_5_9 Crear una aplicación de cuenta regresiva de cumpleaños
tuto_calendar_6_0 Let \ ' s primero llenar los datos del hilandero en el "onCreate"
caso tuto_calendar_6_1 en primer lugar, vamos a \ ' s crear una lista de cadena denominado \ "% s \"
"Permita que se cree una variable de número llamada \"% s \ "
Esta variable de número se usará para agregar los años de 1990 a 2010 en \"% s \ "
Seleccione el \ "% s \" Variable de número
Puesto que queremos que el año comience a partir de 1990, ingrese "1990" aquí
Puesto que queremos agregar% s años a partir de 1990, "% s \" here
La razón por la cual \ ' s 21 es que 1990 se agrega a la lista antes de que aumente "temp_year", a diferencia de los meses
Seleccione la \ "% s \" Lista de cadenas
Seleccione el \ "% s \" Spinner
Seleccione la \ "% s \" Lista
Let \ ' s poblar los datos por días ahora
Primero, vamos a \ ' s crear una lista String named \ "% s \"
Let \ ' s crear una variable de número llamada \ "% s \"
Esta variable de número se usará para agregar los días del 1 al 31 al \ "% s \"
Agregue% s a la condición de repetición
Se utilizarán dos componentes de calendario para calcular la diferencia de dos fechas
Vamos a calcular la diferencia y mostrar la diferencia cuando el cálculo se hace clic en el botón
1. Obtenga la hora actual para c2 Calendar component \ n2. Establezca el año, el mes y el día para el componente Calendario c1 a partir de la entrada del usuario recuperado \ n3. Calcule la diferencia en días y visualícela en TextView
Vibre su dispositivo por x segundos
Cuando haga clic en el botón, vibraremos el dispositivo durante 1 segundo
tuto_vibrator_1_1 Let \ ' s botón Editar la \ ' s evento de clic para hacer vibrar el dispositivo cuando se hace clic
tuto_vibrator_1_2 vibrar el dispositivo cuando se hace clic en el botón
tuto_vibrator_1_3 El primer parámetro determina cómo tiempo que el dispositivo vibrará en milisegundos
tuto_vibrator_1_4 Como queremos que el dispositivo vibre para% s segundos, deje que \ ' s agregar \ "% s \" dentro del parámetro
muestran una mensaje después de% s segundos
Timer componente se utiliza para retrasar ciertas acciones, o repetir una determinada acción con una duración entre
Let \ ' s disparar el temporizador dentro del evento "onCreate"
Cuando se inicia la aplicación, muestra un mensaje después de% s segundos
Let \ ' s add \ "% s \ "milisegundos dentro del parámetro, ya que queremos que el bloque se ejecute después de% s segundos
Ingresa cualquier valor de cadena que quieras mostrar
1. Cuando la aplicación comienza \ n2. El temporizador \ "t \" después de 3000 ms bloque se ejecuta \ n3. ShowMessage dentro del bloque Timer se ejecuta después de 3,000 milisegundos o 3 segundos
Crea una Cheetah animadora usando imágenes de Sprite
Definición de Sprite
Sprite es una hoja de imagen que contiene todos los fotogramas necesarios para una animación para pasar
Cheetah Frames
En este tutorial, \ ' he proporcionado% s fotogramas de un guepardo corriendo para usted
tuto_timer_2_4 Let \ ' s ahora animar esta imagen con temporizador Componente
tuto_timer_2_5 Nosotros \ ' re va a empezar a animar la imagen de inmediato cuando se inicia la aplicación
tuto_timer_2_6 1. Crear una variable Número que realiza un seguimiento de las cuales marco de la animación está en \ n2. Utilice la \ bloque "Temporizador... cada \" para actualizar la variable de frame cada x milisegundos \ n3. Actualizar la imagen con el nuevo índice de trama
tuto_timer_2_7 Crear una variable Número llamado \ "% s \"
Gran tuto_timer_2_8! Ha creado una variable de número llamada \ "% s \". El valor por defecto del número de variables a tuto_timer_2_9
falsa Let \ ' s ejecutar este bloque justo cuando se inicia la aplicación - de entrada% s tuto_timer_2_10
También, dejar que \ ' s ejecutar este cada bloque cada% s milisegundos
Agregue% s al segundo parámetro del bloque \ "% s \"
Agregar% s al segundo parámetro del bloque \ "% s \"
Vamos a entender por qué necesitamos esta condición antes de seguir
Cada vez que se ejecuta el bloque del temporizador, la variable de cuadro aumenta en 1, lo que indica que la imagen debe cambiar al siguiente cuadro. \ NDespués de las actualizaciones de la variable de cuadro, debemos verificar en qué marco está activado y actualizar el cuadro respectivo . Dado que hay 8 cuadros, necesitamos 8 "si... entonces" bloques de condición
Queremos actualizar el marco a la primera imagen si el valor del marco es% s
Haz clic en "si" "bloque para copiarlo
Pon aquí 1 para verificar el primer fotograma
Cuando el fotograma es% s, queremos que la imagen cambie a \"% s \ "
Let \ ' s pegar otro bloque "if then"
Conéctelo bajo el primer bloque "si luego"
Pon aquí 2 para verificar el segundo fotograma
Ponga 3 aquí para verificar el tercer fotograma
Ponga 4 aquí para comprobar el cuarto fotograma
Ponga 5 aquí para verificar la quinta trama
Pon aquí 6 para verificar la sexta trama
Pon aquí 7 para comprobar la séptima trama
1. Utilizamos el bloque Temporizador para aumentar el " marco "variable por 1 cada 150 ms \ n2. Cuando la variable de cuadro aumenta, 1, 2, 3... 15, utilizamos el bloque restante para obtener solo un resultado entre 1 y 7, sin importar cuán grande sea \ "la variable de cuadro \" \ n3. Usamos el bloque "=" para verificar el valor actual del marco y actualizar el ImageView en consecuencia
Crear un cronómetro
Hay cinco TextView dentro de este diseño en formato% s
Minutos
Segundos
And Milliseconds
Cuando se hace clic en el botón de inicio, comenzaremos el cronómetro
Y cuando se presione el botón de detención, haremos una pausa si se ejecuta \ ' s borre el cronómetro
El componente Temporizador se utiliza para actualizar el TextView cada x milisegundos
Los componentes del calendario c1 y c2 se usan para mantener y encontrar diferencias entre dos veces
Let \ &apos ; s inicia el cronómetro cuando se hace clic en el botón de inicio
1. Cuando se hace clic en el botón, configura la variable booleana "iniciada" como verdadera y obtén la hora actual para el componente c1 Calendar \ n2. Inicie un temporizador que se repite cada milisegundo y obtenga el tiempo para el componente c2 Calendar \ n3. Encuentra la diferencia entre c2 y c1 time \ n4. Calcule los minutos, segundos y milisegundos de la diferencia y actualice TextViews
Crear una variable booleana llamada \ "% s \"
\ "% s \" La variable booleana nos avisará si el cronómetro se inicia o no
Crear una variable de número llamada \ "% s \"
\ "% s \" La variable de número se utilizará para mantener la diferencia de tiempo
Seleccione la variable booleana \ "% s \"
Seleccione el componente \ "% s \" Calendar
Let \ ' s ejecutar esto después de \ "% s \" ms
Repita este bloque de temporizador cada \ "% s \ "milisegundo
Seleccione la \"% s \ "Variable de número
Seleccione el \"% s \ "TextView
Dado que solo queremos los milisegundos, ponga \"% s \ " aquí "
Milisegundos Lógica Explicada
El bloque" Diferencia "devuelve el tiempo en milisegundos. Digamos que \ ' s dice que el valor de la diferencia es 5153 ms - 5153% 1000 sería 153. El"% " bloque caps el valor máximo de milisegundos a 1,000
Poner \ "% s \" aquí, ya que queremos calcular los segundos solamente
Poner \ "% s \" aquí, ya que queremos ponga un segundo casquillo% s
Pon aquí \ "% s \", ya que queremos calcular los minutos, y% s milisegundos igual% s minuto
Pon aquí \ "% s \", ya que queremos para poner un% de minutos de límite
1. Cuando se hace clic en el botón "inicio", obtenemos el tiempo para el componente de calendario "c1" \ n2. Comenzando el temporizador, recuperamos una nueva hora actual para el componente Calendario \ "c2 \" y encontramos la diferencia \ n3. Luego, analizamos los milisegundos en minutos, segundos y milisegundos
Deje que \ ' s detener el temporizador cuando se hace clic en el botón de parada
1. Compruebe si se inicia el cronómetro \ n2. Si se inicia, detenemos el cronómetro \ n3. Si se detiene, borramos la hora a 0:00:00 y establecemos el booleano "iniciado" en falso
Haz clic en el bloque% s
Poner \ "% s \" para restablecer los milisegundos
Poner \ "% s \" para restablecer los segundos
Poner \ "% s \" para restablecer los minutos
1. Comprobar si se inicia el cronómetro \ n2 Si se inicia, detenemos el cronómetro \ n3. Si se detiene, borramos la hora a 0:00:00 y establecemos el booleano "iniciado" en falso
Aumenta una variable de número en% s por segundo
Cuando se inicia la aplicación , aumentaremos este dígito en% s por segundo
Let \ ' s inicia el temporizador cuando se inicia la aplicación
1. Cree una variable de número que hará un seguimiento del valor numérico actual \ n2. Usando el bloque "Timer every", aumentaremos la variable Number y actualizaremos TextView
Crear una variable de número llamada \ "% s \"
You \ ' ve creó con éxito una variable de número. Su valor predeterminado es% s
Let \ ' s ejecutar el temporizador después de \ "% s \" ms
Dado que queremos aumentar el valor numérico cada segundo, ponemos \ "% s \" ms
Seleccione la \ "% s \" Variable de número
Seleccione el \ "% s \" TextView
1. Una vez que se inicia la aplicación, se ejecuta el bloque "Temporizador cada" cada 1000 ms o 1 segundo \ n2. Usando la variable numérica \ "num \", hacemos un seguimiento del valor creciente del dígito \ n3. Como las variables de número están en formato numérico, usamos el bloque "toString" para convertir el tipo de número en String antes de actualizar TextView
Agregar y reproducir un archivo de sonido
SoundPool vs MediaPlayer
"- SoundPool Component se utiliza para cargar y reproducir archivos de sonido cortos, como un efecto de sonido \ n- MediaPlayer Component se utiliza para reproducir archivos de sonido más largos, como una música de fondo
Usaremos este botón para reproducir el sonido con SoundPool Component
Usaremos este botón para reproducir el sonido con MediaPlayer Component
Adición de sonido
Primero, vamos a \ Además, intenta agregar un archivo de sonido. Descarga y prepara un archivo de sonido para cargar
Sound Manager
Puedes agregar y administrar archivos de sonido con Sound Manager
Vamos a intentar reproducir el archivo de sonido con SoundPool Component
SoundPool Explained
Reproducción de un sonido con el componente SoundPool se divide en 4 etapas: \ n1. Crear un grupo que puede contener un número x de sonidos \ n2. Crear una variable Número y cargar el ID del sonido en la variable \ n3. Crea otra variable de número que reproduce el sonido y contiene la "ID de reproducción"
Let \ ' s primero crea el grupo en el evento "onCreate"
Dado que solo tenemos el archivo de sonido% s, vamos a \ ' s agregar \ "% s \" aquí
false tuto_sound_media_1_14 Let \ ' s crean la variable Número que puede contener el ID del sonido
tuto_sound_media_1_15 Crear una variable Número llamado \ "% s \"
% s se utilizará para cargar el archivo de sonido
% s se usará para reproducir el archivo de sonido
Let \ ' s ahora carga la ID del sonido en la variable Número que \ ' ve acaba de crear
Seleccione la \ "% s \" Variable de número
Seleccione el archivo de sonido \ "% s \" que ha agregado anteriormente
Let \ ' s ahora edita el botón onClick on evento para reproducir el sonido cuando se hace clic
Haga clic en play_soundspool \ ' s evento onClick
Puedes determinar cuántas veces se reproducirá el sonido aquí. Por defecto, se reproduce una vez. Deje que \ ' s agregue% s aquí
La razón por la que SoundPool requiere que se cree una variable Número para almacenar el ID de reproducción es asegurarse de que puede detener el sonido si lo necesita, usando la ID
Tenga en cuenta que hay un bloque de detención que puede detener el sonido utilizando el ID de reproducción cuando sea necesario
SoundPool es para Sonidos Cortos
El sonido que has añadido puede o no ser reproducido, ya que SoundPool solo puede reproducir archivos de sonido cortos
Vamos a jugar igual archivo de sonido con el componente MediaPlayer
Ahora, deje que \ ' intente reproducir el sonido con MediaPlayer Component
MediaPlayer Explicated
"El procedimiento del Componente MediaPlayer se divide en 2 pasos: \ n1. Crea un MediaPlayer que puede contener 1 sonido \ n2. Reproduce MediaPlayer \ nTenga en cuenta que MediaPlayer no necesita una variable Número para operar, pero requiere más memoria del sistema
Permita que \ ' s cree el MediaPlayer que puede contener un sonido dentro del evento "onCreate"
Seleccione el archivo de sonido \ "% s \" que desea subido previamente
Ahora, vamos a reproducir el sonido cuando se hace clic en el botón
1. SoundPool Component se usa para reproducir sonidos cortos; es posible que el sonido no se reproduzca si el archivo de sonido también está largo. \ nTiene que crear DOS variables de número para cargar el sonido y reproducir el sonido \ n2. MediaPlayer Component se utiliza para reproducir sonidos más largos. No necesita una variable de número, pero utiliza más memoria del sistema
Reproducción y pausa de sonidos
Puedes agregar y administrar archivos de sonido con Sound Manager
Aquí, hemos proporcionado una canción llamada \ "% s \" para que la uses
Siempre que hagamos clic en el botón "Reproducir", comenzará a reproducir la música
Cada vez que hagamos clic en el botón "Pausa", hará una pausa en la música
También hemos proporcionado el Componente MediaPlayer \ " % s \ "para usted
Permita que \ ' s cree el MediaPlayer dentro del evento" onCreate "
Seleccione la tuto_sound_media_2_6 \ archivo de sonido "% s \"
tuto_sound_media_2_7 Let \ ' s reproducir el sonido cuando el "juego" se hace clic en el botón, y dejar que \ ' s hacer una pausa en el sonido cuando la "pausa "se hace clic en el botón
tuto_sound_media_2_8 Let \ ' s de editar el botón play \ ' s evento de clic
tuto_sound_media_2_9 Let \ ' s editar botón de pausa \ ' s evento de clic
1. Creamos el MediaPlayer con el archivo de sonido apropiado dentro del evento "onCreate" \ n2. Cuando se hace clic en el botón de reproducción, se juega el archivo de sonido utilizando la \ "MediaPlayer inicio \" bloqueo \ n3. Cuando se hace clic en el botón de pausa, hacemos una pausa el archivo de sonido utilizando el bloque "MediaPlayer pausa"
tuto_sound_media_2_12 bucle Infinitamente un archivo de sonido
tuto_sound_media_3_0 Puede añadir y gestionar archivos de sonido con el Administrador de sonido
tuto_sound_media_3_1 aquí, \ ' hemos proporcionado una canción que se llama \ "% s \" para que pueda utilizar
tuto_sound_media_3_2 Let \ ' s de editar el evento "onCreate" para reproducir el sonido y la puso en bucle
A diferencia del componente SoundPool, MediaPlayer Component tiene características más interesantes, como "configurar bucle", "obtener duración de la canción", y más
Seleccione el archivo de sonido \ "% s \" antes que usted uploaded
1. Cree un componente MediaPlayer \ n2. Cargue el sonido en MediaPlayer \ n3. Establecer bucle a verdadero \ n4. Inicie MediaPlayer
Obteniendo la duración de la canción
Puedes agregar y administrar archivos de sonido con Sound Manager
Aquí, hemos proporcionado una canción llamada \ "% s \" para que la uses
La duración de la canción es de 18 segundos (~ 18,000 milisegundos)
Recuperaremos y mostraremos la duración total de la canción aquí
Vamos a recuperar la duración de la canción aquí canción cuando se inicia la aplicación
Seleccione el archivo de sonido \ "% s \"
Seleccione el \ "% s \" TextView
Cuando se inicia la aplicación, primero carga el sonido " tobu_mesmerize "en el componente MediaPlayer. \ nA continuación, recuperamos la duración de la canción (en milisegundos) y actualizamos TextView
Crea un pian de 3 teclas
Explicación del diseño
Pasaremos paso a paso y entenderemos cómo está diseñada esta aplicación
Muchos diseños diferentes están posicionados dentro de este diseño, que tiene la altura de 200dp
Hemos configurado la gravedad de la disposición superior e inferior en "center_horizontal" para que las teclas se alineen con el centro "
Las teclas son widgets de" botón "con blanco o negro background
Tienen un ancho de 50dp y alto de 100dp
Para la tecla central, le damos un margen de 4dp a la izquierda y la derecha para que tenga un poco de espacio entre las llaves
Lo mismo se aplica a las teclas negras
Archivos de sonido del piano
Hemos proporcionado cinco archivos de sonido diferentes \ n \ nc1, c1s (tecla negra), d1, d1s ( tecla negra) y e1
En esta aplicación, solo usamos el componente SoundPool. La razón por la que usamos SoundPool en lugar de MediaPlayer es que los sonidos de piano son relativamente cortos
Vamos a analizar el evento "onCreate"
Dentro del evento "onCreate", inicializamos el SoundPool y cargamos archivos de sonido apropiados
Hay% s variables de número disponibles. Las variables que terminan con \ "% s \" se utilizan para cargar el sonido
Las variables que finalizan con \ "% s \" se utilizan para reproducir el sonido
Inicializamos el archivo SoundPool con flujo de% s cuenta. Esto nos permite cargar% s archivos de sonido en SoundPool
Tenga en cuenta que necesitamos usar el bloque "establecer número a" para cargar y reproducir los archivos de sonido cuando se utiliza el componente SoundPool
Aquí, cargamos los archivos de sonido con el bloque "SoundPool load"
Tenga en cuenta que diferentes archivos de sonido se cargan en diferentes variables de Número
Vamos a completar los parámetros que faltan en el último bloque "Definir número a"
Seleccione el \ "% s \" Variable de número
Seleccione el archivo de sonido \ "% s \"
Reproducción de sonidos
"Ahora, vamos a entender cómo se reproducen los archivos de sonido
Hay diferentes eventos de Button onClick disponibles, uno para cada tecla
Let \ \ npuede reproducir el sonido de la tecla \ "% s \" cuando se hace clic
Al igual que para cargar el sonido, el bloque "set to" también se usa para reproducir el sonido
Primero, seleccionamos la variable Number apropiada que termina en \ "% s \"
Como esto es para el evento onClick para \ "% s \", seleccione \ "% s \"
Luego necesitamos el bloque "SoundPool play" para reproducir el archivo de sonido
Let \ ' s haz que juegue una vez poniendo 0 aquí
La lógica para otros eventos clave son idénticos, por lo que \ ' ha sido completada por usted
1. Creamos 10 variables de número, 5 con el sufijo "_sound" y 5 con " _play2. Se usaron variables "sonoras" para cargar el sonido en el evento "onCreate", y se usaron variables "_play" para reproducir el sonido en la tecla. evento onClick
Diseñar un reproductor de música
Hemos proporcionado% s imágenes para ti
Tobu - Mesmerize album art
Botón de reproducción
Botón de pausa
Botón de avance rápido
Rebobinado button
Primero, cambiamos la propiedad de color de fondo del diseño que contiene todos los otros widgets
Hay dos diseños lineales (V): este es el primero con la gravedad centrada
Aplicamos la carátula del álbum a ImageView
Hemos agregado la música y el título del artista usando un TextView
Este es el segundo diseño, con la gravedad centrada también
Esta disposición horizontal está dentro del segundo diseño, con tres ImageViews
En este tutorial, solo nos ocuparemos del botón "play"
Let \ ' s cargar primero canción en MediaPlayer cuando se inicia la aplicación
Cargar la canción \ "% s \" en el componente MediaPlayer
Seleccionar la canción \ "% s \"
Entonces, vamos a \ &apos ; s reproducir el sonido cuando se hace clic en el botón de reproducción
1. Compruebe si la canción ya está en reproducción \ n2. Si reproduce, pause la canción y cambie el icono para reproducir el icono \ n3. De lo contrario, reproduzca la canción y cambie el icono para detener el icono
Cree una variable booleana llamada \ "% s \"
¡Genial! Usamos esta variable para verificar si la canción está sonando o no. Su valor predeterminado es "falso"
Seleccione el \ "% s \" ImageView
Seleccione la \ "% s \" image
Seleccione la variable booleana \ "% s \"
1. Compruebe si la canción ya está en reproducción \ n2. Si reproduce, pause la canción y cambie el icono para reproducir el icono \ n3. De lo contrario, reproduzca la canción y cambie el icono para detener el icono
Rotar un widget con Object Animator Component
¿Qué es Object Animator?
Object Animator se usa para hacer la creación de animaciones más simple. En lugar de usar temporizadores, ahora podemos usar el componente de animador de objetos para animar los widgets
Nosotros \ ' vamos a rotar este TextView usando Object Animator
El componente ObjectAnimator se ha agregado
Let \ ' s animar el TextView cuando se inicia la aplicación
Logic Goal
Usar el componente ObjectAnimator para animar TextView
Hacer clic en la categoría de Componentes
Logic Goal
Logic Goal
Intercambiar valores de dos valores de texto
Después del intercambio de valor, el texto se mostrará como \ n \ nB \ nA
Let \ ' s intercambian los dos valores cuando se hace clic en el botón \ "swap \"
1. Cree una variable temporal que contenga el valor de \ "% s \" \ n2. Cambie el valor de \ "% s \" a \ "% s \" \ n3. Establezca el valor de \ "% s \" en \ "% s \"
Cree una variable String llamada \ "% s \"
Para intercambiar dos valores, necesitamos para crear un marcador de posición temporal que puede contener temporalmente un valor mientras hacemos el intercambio
Imprimir un triángulo de asteriscos
Vamos a mostrar el trinagle a través de la vista de texto proporcionada
Let \ ' s generar el trinagle de asteriscos en el evento onCreate
Queremos adquirir una tringle de asteriscos que se vea así: \ n * \ n ** \ n *** \ n **** \ n *** **
Crear una variable de número llamada \ "% s \"
Esta variable de número nos ayudará a llevar un registro de cuántos asteriscos se imprimirán en cada fila
Ajustamos i a 1, ya que queremos imprimir un * en la primera fila
Haz clic en la categoría Control
Haz clic en la categoría Variable
Crea una variable String llamada \ "% s \"
Selecciona el \ "% s \" block
Usamos dos bloques de repetición \ n1. El primer bloque de repetición se utiliza para determinar cuántas filas de * queremos imprimir al agregar una nueva línea a cada bucle \ n2. El bloque de repetición dentro del bloque de repetición se utiliza para imprimir cada fila \ n
3. El bucle interno se repite \ "i \" veces, que se incrementa en el bucle de repetición externo. Esto nos permite adquirir la impresión de aspecto triangular \ n4. Finalmente, establecemos el TextView en el texto en el que estamos participando
\ "stars \" La variable contendrá el valor de lo que queremos imprimir
Calcular si el número es par o impar
Después de que el usuario ingrese una entrada numérica y haga clic en el botón, brindaremos \ "even \" o \ "odd \"
Vamos a hacer el cálculo cuando se hace clic en el botón
Los números pares son números que son divisibles por 2. Para comprobar si la entrada es pareja, solo necesitamos verificar si hay quedan restos cuando el número se divide por 2
Cuando hay un resto, vamos a tostar \ "impar \"
Cuando no hay resto, haremos tostadas \"incluso\"
Decidimos si el número está incluso calculando si la entrada tiene algún residuo después de que se divide por 2
Desafío
La aplicación puede fallar si no ingresas ningún número. Intenta crear otra instrucción if que te ayude a comprobar si el EditText tiene alguna entrada
Invertir los elementos en la lista
El ListView proporcionado mostrará los elementos dentro de la lista
Cuando se presiona el botón Invertir, el contenido de la lista se invertirá
Vamos a ver el evento onCreate
Nosotros ya hemos creado y poblado tres elementos en una lista de String, \ "a, b, c \"
Vamos a invertir la lista dentro del botón inverso \ ' s onClick evento
1. Cree una nueva lista de cadenas \ n2. Itere la lista existente y copie los elementos de forma inversa \ n3.Actualice la vista de lista con el nuevo contenido
Crea una lista de cadenas llamada \ "% s \"
Crea una variable de número llamada \ "% s \"
Inicialmente eliminamos la lista, de modo que incluso cuando el botón inverso se hace clic varias veces, la \ "r_list \" comienza con el mismo estado en blanco cada vez. Creamos una variable de número denominada índice, que nos ayudará a repetir la lista original a partir del último elemento.
Crear una variable de número llamada \ "% s \"
Ajustamos el índice a \ "tamaño - 1 \", ya que el índice del primer elemento de una lista comienza con 0, y nosotros Quería comenzar desde el último elemento. Dado que el tamaño de la lista es 3, queremos comenzar desde el índice 2, que es el índice del último ítem. \ N \ n
Usando el bloque de repetición, iteraremos desde el último ítem dentro de \ "list1 \ ", y agréguelos a \" r_list \ ". Reducimos la variable de índice en 1 cada iteración para obtener el elemento anterior en \ "list1 \".
Luego, restablecemos los datos para el ListView y lo actualizamos, para que el ListView pueda mostrar los nuevos datos de \ "r_list \"
Crear una baraja de naipes
The siempre que ListView muestre las tarjetas después de que se hayan generado
Vamos a generar \ y aparezca el ListView cuando se inicie la aplicación
En las cartas, hay cuatro palos y 13 cartas para cada suite. En el mazo que vamos a crear, denotaremos las suites con números: \ n
1. Diamantes - 0 \ n2. Corazones - 1 \ n3. Picas - 2 \ n4. Clubs - 3 \ n \ nPor ejemplo, un As de espadas se denotaría como 20, en formato de número de tarjeta de visita
Crear una variable de Número llamada \ "% s \"
Establezca el valor a \ "% s \" para el número de juegos
Establezca el valor a \ "% s \" para el número de tarjetas
Crear una lista de cadenas llamada \ "% s \"
El bucle de repetición interno se repite 13 veces cada vez que ocurre un bucle de repetición externo. Añadimos 13 cartas diferentes con cada repetición de juego, y restablece el valor de la carta a 0 para que el otro palo también obtenga las mismas 13 cartas
Hemos creado con éxito 52 cartas. El formato en el que se muestran las tarjetas puede ser un poco funky, pero en el mundo de la programación, a veces es necesario usar varios formatos de datos para diferentes situaciones \ n \ n
El primer dígito indica qué traje es , y el siguiente número indica el número de la tarjeta. Por ejemplo, 09 sería un Jack of Diamonds, ya que el primer artículo comienza con el índice 0
Baraja una baraja de naipes
Prerrequisito
Si tiene \ ' t, complete el tutorial anterior, ya que se trata de un tutorial acumulativo
Usaremos este ListView para mostrar el mazo barajado
We \ Ya se ha proporcionado la lógica para el evento onCreate
La lógica es la misma que en el tutorial anterior, excepto que hemos creado una nueva función MoreBlock llamada \ "shuffleDeck \"
Let \ ' s edite la función shuffleDeck para mezclar el deck y llenar ListView
1. Cree una nueva lista llamada \ "s_deck \" \ n2. Elija aleatoriamente 1 tarjeta de la lista \ "deck \" y cópiela en \ "s_deck \"
Cree una variable de número llamada \ "% s \"
Cree una lista de cadenas llamada \ " % s \ "
Establezca el valor en \"% s \ ", ya que hay 52 cartas en el mazo
Tenga en cuenta que restamos 1, ya que el primer elemento dentro de la lista comienza con el índice de 0, lo que significa que el índice del último elemento siempre será la longitud - 1
Durante los 52 bucles de repetición, generamos una variable de número aleatorio que toma un índice aleatorio de 0 a la longitud de la lista de mazos: 1. Usando el índice, copiamos la tarjeta de la lista de mazos a la lista de s_deck, y la eliminamos del mazo
lista para que la misma tarjeta no se copie sobre
Cuente cuántas veces se repite la palabra \ "a \" en una oración
Aquí, hemos proporcionado un TextView con el texto de \ "abcaa \", creamos un algoritmo que cuenta cuántas veces \ "a \" ha repetido
Nosotros calculamos y mostramos el recuento cuando se inicia la aplicación
Go a través de cada carácter usando un bucle for
Hemos proporcionado 4 variables para ti
\ "% s \" nos ayudará a iterar a través de cada carácter
\ "% s \" será una variable temporal que contiene/actualiza cada palabra
\ "% s \" mantendrá temporalmente el valor de cada carácter que se repite a través de
\ "% s \" mantendrá el recuento de cuántas veces ha aparecido \ "a \"
Guarda un personaje en la variable \ "carácter \"
Verifica si el personaje es un espacio vacío. \ N1. Si el personaje no es un espacio vacío, únase al personaje a la variable \ "palabra \" haciendo \ "palabra \" join \ "palabra + carácter \" \ n
2. Si el personaje es un espacio vacío , comprueba si la palabra es igual a \ "a \". Si \ ' s igual, incremento de conteo. Finalmente, restablezca la variable \ "palabra \"
1. Únete al personaje en word hasta llegar a un espacio vacío \ n 2. Si la palabra es igual a \ "a \", incrementa el conteo \ n 3. Restablece la variable word a una cadena vacía e incrementa el índice \ n 4. Brindar el número de cuenta que sucedió