es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Quiero crear una distribución de diseño sensible para la aplicación de Android para diferentes tamaños de pantalla.

Primero cree un archivo xml

Por defecto: – activity_main

Teléfonos pequeños: – activity_main(sw360)

Teléfonos grandes: – activity_main(sw480)

Teléfonos/Tablets extra grandes: – activity_main(sw600)

Quiero seguir esta condición, ¿pero hay algún error?????

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Configuration config = getResources().getConfiguration();
    if (config.smallestScreenWidthDp >= 320 && config.smallestScreenWidthDp <= 480) {
        setContentView(R.layout.activity_main(sw320));
    } else if (config.smallestScreenWidthDp >= 481 && config.smallestScreenWidthDp <= 600) {
        setContentView(R.layout.activity_main(sw480));
    } else(config.smallestScreenWidthDp >= 601{
        setContentView(R.layout.activity_main(sw600));
    } 
  }

Vea esta imagen para entender mejor.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para crear diferentes archivos XML para diferentes tamaños de pantalla, es necesario seguir una convención de nomenclatura específica. La convención es la siguiente:

    • Para el diseño predeterminado, utilizar activity_main.xml.
    • Para teléfonos pequeños, crear un nuevo archivo XML llamado activity_main.xml y colocarlo en una carpeta llamada layout-sw360dp.
    • Para teléfonos grandes, crear un nuevo archivo XML llamado activity_main.xml y colocarlo en una carpeta llamada layout-sw480dp.
    • Para teléfonos / tabletas extra grandes, crear un nuevo archivo XML llamado activity_main.xml y colocarlo en una carpeta llamada layout-sw600dp.

    Después de crear los archivos XML correspondientes en las carpetas correctas, se puede utilizar el siguiente código en el método onCreate para cargar el diseño correspondiente:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // Diseño predeterminado
    
        Configuration config = getResources().getConfiguration();
        int screenWidth = config.smallestScreenWidthDp;
    
        if (screenWidth >= 320 && screenWidth <= 480) {
            setContentView(R.layout.activity_main_sw360dp);
        } else if (screenWidth >= 481 && screenWidth <= 600) {
            setContentView(R.layout.activity_main_sw480dp);
        } else if (screenWidth >= 601) {
            setContentView(R.layout.activity_main_sw600dp);
        }
    }
    

    Tenga en cuenta que los nombres de archivo XML utilizados en el método setContentView no incluyen el calificador sw.

Comments are closed.