Red de conocimiento informático - Computadora portátil - ¿Cuáles son los tres métodos de diseño de UI más utilizados en el sistema Android?

¿Cuáles son los tres métodos de diseño de UI más utilizados en el sistema Android?

Tipos de recursos de Android

1. Recursos de cadenas

cadenas ordinarias

matrices de cadenas

Copiar código

ltresourcegt

ltstring-array name = " planets _ array "

litem gtaaa lt/item gt;

litem gtbbb lt/item gt ;

lt/string-array gt;

lt/resources gt;

Copiar código

Obtener método :getresources(). getstring array(r . array . planetas _ array).

gt gt3. Recursos de cadenas complejas

En algunos lenguajes naturales, diferentes números tienen diferentes usos, como un libro y dos libros. Cuando el número es mayor que 1, se utilizará un sustantivo diferente u otra forma plural;

Copiar código

ltresourcegt

ltplural name = " numberOfp " gt

litem cantidad="one " >Una persona lt/item gt;

litem cantidad="other " >Más personas lt/item gt; /plural gt

lt/resources gt;

Copiar código

Además de uno y otros, el valor del atributo cantidad también puede ser cero, dos , fiebre, Muchos;

Cadena compleja de referencia:

//El número de referencia es 1.

obtenerRecursos(). getQuantityString(r . pluarlas . number ofp, 1);

//El número de referencia es una cadena compleja con otros valores.

obtenerRecursos(). getQuantityString(r. pluarlas. number ofp, 10, 10);

gt gt4. Cadena de formato de marcador de posición

Hay tres métodos comunes para formatear cadenas:

gt gt1. Utilice comillas en cadenas

Aunque puede especificar el valor en la cadena a voluntad, cuando encuentre símbolos especiales (comillas dobles, comillas simples), deberá utilizar métodos especiales para procesar estos símbolos.

Si es una comilla simple ('), puede usar el carácter de escape (\) o comillas dobles (") para encerrar toda la cadena. Si es una comilla doble, puede usar el carácter de escape carácter antes de la comilla doble (\).

ltresourcegt

ltstring name="str1 " >"Esto funcionará" lt/string gt;Esto será útil

.

ltstring name="str2 " >Esto funcionarált/string gt;Esto será útil

ltstring name="str3" >\ "Apple\" lt/string gt;"Apple"

lt/resources gt;

gt gt2. Usar marcadores de posición para formatear cadenas

El método String.format (cadena, objeto...) puede usar marcadores de posición Cadenas formateadas con caracteres. , los recursos de cadena se pueden formatear con cadenas.

El método Format requiere 1,,...,n. De hecho, el enésimo marcador de posición corresponde al valor del parámetro n 1 del método format;

lt recurso gt

lt! -$s significa que el marcador de posición se reemplaza por una cadena, $d significa que el marcador de posición se reemplaza por un número entero - gt;

ltstring name="str1 ">¡Hola, 1$s! Tienes 2$d nuevos correos electrónicos lt/string gt;

lt/resources gt;

string str 1 = string format(get resources().getString(R.string .str1. ), "ly", 17);

gt gt3. Formatee los recursos de cadena con etiquetas HTML

Los recursos de cadena admiten algunas etiquetas HTML, por lo que puede usar estas etiquetas HTML para formatear la cadena. directamente en el recurso de cadena.

Los recursos de cadenas admiten las siguientes etiquetas HTML

fuente ltb gt negrita

configuración de lti gt cursiva

palabras subrayadas ltu gt

A veces es necesario formatear cadenas con etiquetas HTML y marcadores de posición. Si la cadena se formatea utilizando el método String.format, se ignorarán todas las etiquetas HTML de la cadena. Para que el método de formato formatee la banda

Las etiquetas HTML son de hecho caracteres, debe usar el método Html.formHTML para procesar cadenas;

ltresourcegt

ltstring name = " hola _ mundo " gtBienvenido a ltb gtandroid lt/b gt; lt/string gt

ltstring name="str2 " >¡Hola, 1$s! Tienes ltb gt2d nuevos mensajes lt/b gt; - una cadena que contiene marcadores de posición y etiquetas html ->;

lt/resources>

Porque necesitas usar el método Html.formHTML para manejar la cadena,

Obtener cadena:

texto de cadena = cadena. formato(obtener recursos().getString(R.string.str2), "ly", 10);

secuencia de caracteres styledText = html . from html(text);

//Si el parámetro de formato contiene caracteres especiales HTML, como "

cadena de escape nombre de usuario = textutils . html encode(" " );

texto de cadena 1 = cadena .formato(obtener recursos(). getString(R.string.str2), "ly", 20

2.

1. Si el nodo raíz es una vista, excepto

2. El nodo raíz es un ViewGroup y los diseños comúnmente utilizados son todas subclases de ViewGroup.

3. Reutilizar archivos de diseño

Si desea reutilizar archivos de diseño, puede usar ltinclude layout = "@layout/xx _layout"/ gt

Si desea que otro archivo de diseño haga referencia a un archivo de diseño (usando

3. Recursos de imagen

Los archivos de imagen se pueden almacenar en recursos de imagen, imágenes en formato xml. Los recursos también se pueden se utiliza para controlar el estado y el comportamiento de las imágenes

gt gt1. Recursos de imágenes comunes

p>

Drawable da = getDrawable(r . drawable . XXX). > recurso de imagen gt gt2.xml

El recurso de imagen XML es en realidad un archivo XML especificado en el directorio dibujable. Además, puede especificar algunos atributos de la imagen, como la extracción y la disposición de la imagen. p>

lt bitmap xmlns: android=" "

Android: src = " @ drawable/IC _ launcher "

Android: modo mosaico = " repetir " gt ;

lt/bitmap gt;

gt gt3. Recurso de imagen de nueve parches

El archivo de recurso de imagen de nueve parches debe tener 9.png como extensión de archivo. por ejemplo abc.9.png.

La función principal de este recurso de imagen es evitar que una determinada parte de la imagen se estire para determinar la posición de visualización del contenido en el control con la imagen como; la imagen de fondo;

El SDK de Android proporciona una herramienta Draw 9-patch. Inicie el comando \tools\draw9patch.bat para iniciar la herramienta;

Usando esta herramienta, puede dibujar. una línea recta con un grosor de 1 píxel alrededor del mapa png. Las líneas rectas en el borde superior y el borde izquierdo representan respectivamente el rango de valor potencial de la imagen en las direcciones horizontal y vertical. no es necesario estirar la dirección, no es necesario dibujar las líneas rectas correspondientes; las líneas rectas en el borde derecho y el borde inferior respectivamente Representan el rango de visualización del contenido en el control donde se encuentra la imagen. solo se muestra en el área donde se dibujan líneas rectas en el borde derecho y el borde inferior. Una diferencia importante entre las dos líneas rectas que representan el rango de visualización de contenido y el rango extendido es la mitad de la línea recta que representa el rango de visualización de contenido. No se puede desconectar, pero el medio de la línea recta que representa el rango de extensión se puede desconectar.

El método de referencia para los recursos de imágenes de nueve parches es el mismo que el de los recursos de imágenes normales. escriba el nombre del archivo vitality.9.png;

p>

gt gt4.XML recurso de imagen de nueve parches

El recurso de imagen de nueve parches también tiene un recurso de imagen xml correspondiente, por lo que utilice

recurso de capa gt gt5.

Los recursos de capa son similares

De forma predeterminada, la imagen llena la imagen mostrada tanto como sea posible y la imagen puede ser estirado. Para evitar estirar la imagen, puede utilizar

Copiar código

lt Layer List xmlns: Android = " " gt

lt project

<; p >Android: bottom="10dip "Desplazamiento de píxeles inferiores.

Android: left="10dip "Píxeles desplazados a la izquierda.

android:right="10dip"...

Android:top="10dip">...

ltbitmap

Android: gravedad="center"

Android: src="@drawable/hell"/gt;

lt/item gt;

lt/layer- list gt;

Copiar código

En algunos casos, puede usar capas en su lugar

gt gt6. Recursos de estado de imagen, procesando El estado de visualización del control en diferentes estados.

Copiar código

lt selector xmlns: Android = " " gt;

litem Android: drawable = " @drawable/BM " Android: state_focused = " true " gt; lt/item gt;

litem Android: drawable = " @ drawable/BM " Android: state_pressed = " true " gt; lt/item gt;

litem Android: drawable = " @ drawable/BM " gt; lt/item gt;

lt/selector gt;

//Android: Establecer state_focused/pressed Si es verdadero, significa que el dibujable La propiedad del elemento actual es el estilo dibujable cuando se enfoca y se presiona.

Copiar código

gt gt7.Recursos a nivel de imagen

El estado del recurso de imagen solo puede especificar un número limitado de estados, y se pueden especificar más estados a través de la imagen. nivel. El nivel de imagen es un intervalo entero y las imágenes en diferentes estados se pueden cambiar mediante el método ImageView.setImageLevel o Drawable.setLevel. El recurso de nivel de imagen es un archivo xml y debe usarse

lt; lista de niveles xmlns: Android = " " gt ;

litem Android: nivel máximo = " 2 " Android: nivel mínimo = " 0 " Android: drawable = " @ drawable/hell "/ gt; >

litem Android: nivel máximo = " 4 " Android: nivel mínimo = " 3 " Android: drawable = " @ drawable/hell "/ gt

lt/level-list gt; p>

gt gt8.cross Fundir recursos

También cambia dos imágenes (no se admite el cambio de más de dos imágenes), de modo que las dos imágenes tengan un efecto de aparición y desaparición gradual. , como que la luz se ilumina u oscurece gradualmente al cambiar;

p>

ltTransition xmlns: Android = " " gt;

litem Android: drawable = " @ drawable/hell "/ gt ;

litem Android: drawable = " @ drawable/hell "/ gt;

lt/transition gt;

TransitionDrawable da =...;

// Cambiar de la primera imagen a la segunda En las dos imágenes, el efecto de tiempo es de 1 segundo.

da . start Transition(1000);

// Cambia de la segunda imagen a la primera, el efecto de tiempo es de 1 segundo.

da .transición inversa(1000);

gt gt9. Insertar recursos de imagen

Escenario de uso: se requiere que la imagen que se mostrará sea más pequeña que la vista que carga la imagen (el gráfico es más pequeño que el área de vista), también definida usando recursos xml, con un solo nodo insertado.

ltinset xmlns: android=" "

Android: draw able = " @ drawable/hell "

Android: inset left = " 10 dip " gt ;es! -Distancia que se extiende hacia la izquierda desde la imagen- gt; distancia superior/inferior/derecha- gt;

lt/inset gt

gt gt10. muestra la parte de la imagen, como hacer una barra de progreso;

ltclip xmlns: android=" "

Android: clip orientación = "horizontal"//Especifica la dirección del clip.

Android: draw able = " @ draw able/hell " //Especifica la imagen que se recortará.

Android: Gravity = "left" gt; //Especifica el método de interceptación, en este caso, intercepta desde la izquierda.

lt/clip gt;

Clipable cd =...;

CD establecido nivel(1000); setLevel(nivel) arriba establece el ancho de la imagen capturada. El valor máximo predeterminado de ClipDrawable es 10000 (lo que indica que no se captura) y el valor mínimo es 0 (lo que indica que no se muestra).

gt gt11. Escalar recursos de imagen

ltscale xmlns: android= " "

Android: draw able=" @ drawable/hell "

Android: escala de gravedad = "centro"//Establece la posición donde se muestra la imagen.

Android: scaleHeight="70" //Establece la altura de visualización de la imagen.

Android: scale width = "80" gt; //Establece el ancho de visualización de la imagen.

lt/scale gt;

gt gt12 Recurso de forma

Copiar código

ltshape xmlns: android= " "

Android: forma = "rectángulo" gt; La forma se puede especificar como rectángulo, elipse, línea y anillo.

lt Corners gt define esquinas redondeadas

lt/corners gt

lt gradient

android: angle="45 "

android: startColor="#000000 "

Android: end color = " # FFFFFF " gt; Define el degradado de color desde la esquina inferior izquierda hasta la esquina superior izquierda.

lt/gradient gt;

lt padding gt define la distancia desde el contenido del control hasta el borde.

lt/padding gt;

lt trazo gt define el borde

lt/stroke gt

lt sólido gt define el relleno;

p>

lt/solid gt;

ltsize gt define el tamaño

lt/size gt

lt/shape; gt;

Copiar código

13. Recursos de menú

Los menús no solo se pueden crear a través del código en el método onCreateContextMenu o onCreateOptionsMenu, sino también crear el menú correspondiente. Los archivos de recursos en el directorio res/menu Los recursos del menú se pueden cargar mediante los dos métodos anteriores.

El archivo de recursos del menú debe ser

Copiar código

@overwrite

público booleano onCreateOptionsMenu(menú menú){

//Inflar menú; esto agregará el elemento a la barra de acciones si existe.

MenuInflater inflador = getMenuInflater();

inflador.inflate(R.menu.main, menú)

Devuelve verdadero

}

Copiar código

Comprueba menuinflater.infect(int, menu).

Copiar código

/**

* Expande la jerarquía del menú desde el recurso XML especificado.

*

* @param menuResEl ID del recurso de diseño XML que se va a cargar (como ltcodegtr.menu.main_activitylt;/codegt;)

* @param menu El menú al que se ampliará. Se agregarán elementos y submenús al menú.

*/

public void inflate(int Menú, Menú menú) {

XmlResourceParser parser = null

Prueba {

analizador = mContext.getResources(). get layout(menuRes);

AttributeSet attrs = XML . asattributeset(parser);

parseMenu(parser, atributo, menú);

}Conectar en vivo. ..finalmente {

if (parser != null) parser close()

}

}

Copiar código<. /p>

14. Estilo/tema

gt gt1. Estilo

Los estilos en Android tienen las mismas funciones que los estilos en CSS. Se utilizan para definir el estilo de visualización de los elementos de la interfaz, que son colecciones que contienen una o más propiedades de control.

El estilo definido debe definirse en res/values/styles.xml. La siguiente es la definición del estilo:

ltstyle name="textViewStyle "

.

nombre del elemento = " Android: tamaño del texto " gt; 22sp lt/elemento gt;

nombre del elemento = " Android: color del texto " gt; p> lt/estilo gt;

ltstyle nombre = " textViewStyle 1 " parent = " textViewStyle " > lt/estilo gt; -Este estilo hereda del estilo textview- gt;

ltstyle name="textViewStyle.Livingstone">;lt! -¿Otra forma de escribir herencia de estilos, pero no puede heredar los estilos definidos por Android de esta manera? - gt;

litem name = "Android: color de texto" gt;# 00FF00 lt/item gt;

lt/style gt;

Todos los estilos definidos generará automáticamente una identificación de recurso en el archivo R. Agregar un punto para indicar la herencia de estilo generará el ID de recurso que se muestra arriba.

Referencia al estilo:

lttextView

style="@style/textViewStyle "

Android: layout_width = " fill _ parent "

Android: layout_height = " wrap_content "

Android: text = " hola "/ gt;

gt Temas Temas

Los temas se aplican a toda la aplicación o actividad y los estilos se aplican a controles específicos. La aplicación del tema es la misma que la definición de estilo, excepto que el tema también puede establecer el estilo de visualización de la ventana; se debe citar una referencia al tema en el archivo de manifiesto. Si se refiere a toda la aplicación, debe configurarse en el nodo de la aplicación. Si se refiere a una sola actividad, solo debe configurarse en esta actividad.

Copiar código

ltstyle name="Livingstonetheme" > lt! -Esto se define como un tema sin título->;

litem name = " Android: ventana no título " gt; true lt/item gt

litem name = " Android: ventana pantalla completa "gt;? Android: ventana sin título lt;/item gt;

lt! - El signo de interrogación indica una referencia al valor del atributo Android:window not title en este tema-->;

litem name = "Android: tamaño del texto" gt;18sp lt;/item gt;

lt/style gt;

Copiar código

El sistema Android define algunos atributos, como Android:theme = "@Android:style/theme.dialog ", que puede hacer que las actividades parezcan un cuadro de diálogo. Se pueden encontrar más temas en la referencia de documentación - gt; Android - gt; Ver en R.style Cuando un valor de atributo de estilo en el tema entra en conflicto con un valor de atributo en el estilo, se mostrará el valor en el estilo

15. Otros recursos

Las dimensiones de recursos también pueden incluir dimensiones, números enteros, valores booleanos, matrices de enteros, matrices de recursos y colores.

TypedArray ta = getResources(). getTypedArray(int id); //Obtener recursos de matriz, incluidas matrices de enteros y matrices.

Resumen final:

A excepción de los nombres de recursos en el directorio res/values, los recursos en otros directorios generarán variables en las subclases correspondientes de la clase R, con nombres de archivos. ; Los recursos en res/values ​​​​generarán variables con el atributo de nombre como nombre de variable en la subclase correspondiente de la clase R;