Recurso de diseño
    
    
      
    
    
      
      Organiza tus páginas con colecciones
    
    
      
      Guarda y categoriza el contenido según tus preferencias.
    
  
  
      
    
  
  
  
  
  
    
    
    
  
  
    
    
    
Un recurso de diseño define la arquitectura de la IU en una Activity o en un componente de una IU.
- ubicación del archivo:
- res/layout/filename.xml
 Se utiliza el nombre del archivo como ID de recurso.
- tipo de datos de recursos compilados:
- Es un puntero de recurso a un recurso View(o de subclase)
- referencia del recurso:
- 
En Java: R.layout.filename
 En XML:@[package:]layout/filename
- sintaxis:
- 
<?xml version="1.0" encoding="utf-8"?>
<ViewGroup
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@[+][package:]id/resource_name"
    android:layout_height=["dimension" | "match_parent" | "wrap_content"]
    android:layout_width=["dimension" | "match_parent" | "wrap_content"]
    [ViewGroup-specific attributes] >
    <View
        android:id="@[+][package:]id/resource_name"
        android:layout_height=["dimension" | "match_parent" | "wrap_content"]
        android:layout_width=["dimension" | "match_parent" | "wrap_content"]
        [View-specific attributes] >
        <requestFocus/>
    </View>
    <ViewGroup >
        <View />
    </ViewGroup>
    <include layout="@layout/layout_resource"/>
</ViewGroup>Nota: El elemento raíz puede ser un elemento ViewGroup,Viewo<merge>, pero puede haber un solo elemento raíz y este debe contener el atributoxmlns:androidcon el espacio de nombresandroid, como se muestra en el ejemplo de sintaxis anterior.
 
- elementos:
- 
  
  - <ViewGroup>
- Es un contenedor para otros elementos View. Hay muchos tipos diferentes de objetosViewGroup, y cada uno te permite especificar el diseño de los elementos secundarios de distintas maneras. Algunos tipos de objetosViewGroupsonLinearLayout,RelativeLayoutyFrameLayout.No asumas que cualquier derivación de ViewGroupaceptará vistas anidadas. Algunos grupos de vistas son implementaciones de la claseAdapterView, que determina sus elementos secundarios solo a partir de unAdapter.
 Atributos: 
        - android:id
- ID de recurso. Un nombre de recurso único para el elemento, que puedes usar para obtener una referencia al ViewGroupde tu aplicación. Si deseas obtener más información, consulta la sección Valor para android:id.
- android:layout_height
- Dimensión o palabra clave. Obligatorio. Es la altura del grupo, como un valor de dimensión (o recurso de dimensión) o una palabra clave ("match_parent"o"wrap_content"). Para obtener más información, consulta la sección Valores para android:layout_height y android:layout_width.
- android:layout_width
- Dimensión o palabra clave. Obligatorio. Es el ancho del grupo, como un valor de dimensión (o recurso de dimensión) o una palabra clave ("match_parent"o"wrap_content"). Para obtener más información, consulta la sección Valores para android:layout_height y android:layout_width.
 La clase base ViewGroupadmite más atributos y, a su vez, cada implementación deViewGroupadmite muchos más. Si quieres obtener una referencia de todos los atributos disponibles, consulta la documentación de referencia correspondiente a la claseViewGroup(por ejemplo, los atributos XML deLinearLayout).
 
- <View>
- Es un componente de IU individual, por lo general, denominado widget. Algunos tipos de objetos ViewsonTextView,ButtonyCheckBox.Atributos: 
        - android:id
- ID de recurso. Un nombre de recurso único para el elemento, que puedes usar para obtener una referencia al Viewde tu aplicación. Si deseas obtener más información, consulta la sección Valor para android:id.
- android:layout_height
- Dimensión o palabra clave. Obligatorio. Es la altura del elemento, como un valor de dimensión (o recurso de dimensión) o una palabra clave ("match_parent"o"wrap_content"). Para obtener más información, consulta la sección Valores para android:layout_height y android:layout_width.
- android:layout_width
- Dimensión o palabra clave. Obligatorio. Es el ancho del elemento, como un valor de dimensión (o recurso de dimensión) o una palabra clave ("match_parent"o"wrap_content"). Para obtener más información, consulta la sección Valores para android:layout_height y android:layout_width.
 La clase base Viewadmite más atributos y, a su vez, cada implementación deViewadmite muchos más. Para obtener más información, consulta Diseños. Si quieres obtener una referencia de todos los atributos disponibles, consulta la documentación de referencia correspondiente (por ejemplo, los atributos XML deTextView).
 
- <requestFocus>
- Cualquier elemento que represente un objeto Viewpuede incluir este elemento vacío, lo que le da al elemento superior el enfoque inicial en la pantalla. Solo puedes tener uno de estos elementos por archivo.
- <include>
- Incluye un archivo de diseño en este diseño.
      Atributos: 
        - layout
- Recurso de diseño. Obligatorio. Es la referencia a un recurso de diseño.
- android:id
- ID de recurso. Anula el ID proporcionado a la vista raíz en el diseño incluido.
        
- android:layout_height
- Dimensión o palabra clave. Anula la altura asignada a la vista raíz en el diseño incluido. Esta acción solo es efectiva si también se declara android:layout_width.
- android:layout_width
- Dimensión o palabra clave. Anula el ancho asignado a la vista raíz en el diseño incluido. Esta acción solo es efectiva si también se declara android:layout_height.
 Puedes agregar cualquier otro atributo de diseño en <include>que sea compatible con el elemento raíz en el diseño incluido, y este anulará todos los definidos en el elemento raíz.
 Advertencia: Si deseas anular los atributos de diseño con la etiqueta <include>, debes anularandroid:layout_heightyandroid:layout_widthpara que se apliquen otros atributos de diseño.
 Otra forma de incluir un diseño es usar ViewStub: una vista liviana que no consume espacio de diseño hasta que la aumentas de forma explícita. Cuando lo hagas, se incluirá un archivo de diseño definido por su atributoandroid:layout. Para obtener más información sobre el uso deViewStub, consulta Cómo cargar vistas on demand.
 
- <merge>
- Es un elemento raíz alternativo que no se dibuja en la jerarquía de diseño. Usar este elemento como raíz es útil cuando sabes que el diseño se colocará en uno que ya contiene el elemento Viewsuperior adecuado para contener los elementos secundarios del elemento<merge>.En especial, es útil si planeas usar <include>para incluir este diseño en otro archivo de diseño que no requiera un contenedorViewGroupdiferente. Para obtener más información sobre la combinación de diseños, consulta Cómo reutilizar los diseños con <include>.
 
 Valor para android:idPara el valor de ID, por lo general, se usa este formato de sintaxis: "@+id/name", como se muestra en el siguiente ejemplo. El símbolo más,+, indica que es un nuevo ID de recurso, y la herramientaaaptcreará un nuevo número entero de recurso en la claseR.java, si aún no existe.
 <TextView android:id="@+id/nameTextbox"/> El nombre nameTextboxahora es un ID de recurso adjunto a este elemento. Luego, puedes consultar elTextViewal que está asociado el ID en Java:
 Kotlinval textView: TextView? = findViewById(R.id.nameTextbox) JavaTextView textView = findViewById(R.id.nameTextbox); 
Este código muestra el objeto TextView.
 Sin embargo, si ya definiste un recurso de ID (y si aún no se utilizó), puedes aplicar el ID a un elemento Viewexcluyendo el símbolo + en el valorandroid:id.
 Valores para android:layout_height y android:layout_widthLos valores de altura y ancho se expresan mediante cualquiera de las unidades de dimensión compatibles con Android (px, dp, sp, pt, in y mm) o las siguientes palabras clave: | Valor | Descripción | 
|---|
 
      | match_parent | Configura la dimensión para que coincida con la del elemento superior. Se agregó en el nivel de API 8 para dar de baja fill_parent. |  
      | wrap_content | Configura la dimensión solo en el tamaño necesario para que se adapte al contenido de este elemento. |  
 Elementos de vista personalizadaPuedes crear elementos ViewyViewGrouppersonalizados, y aplicarlos a tu diseño de la misma manera que un elemento de diseño estándar. También puedes especificar los atributos compatibles con el elemento XML. Para obtener más información, consulta Cómo crear componentes de vista personalizada.
 
- ejemplo:
- Archivo en formato XML guardado en res/layout/main_activity.xml:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hello, I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a Button" />
</LinearLayout>Este código de la aplicación carga el diseño para una Activityen el métodoonCreate():
 
- 
Kotlinpublic override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)
}Javapublic void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
}
- consulta también:
- 
 
    
  
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
  Última actualización: 2025-07-27 (UTC)
  
  
  
    
      [[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (UTC)"],[],[]]