2011-04-05 18 views

Respuesta

10

Si usted está dispuesto a utilizar código para lograr esto, es posible que intente insertar algo así como

View view = (View) findViewById(R.id.background_carrying_view); 
int orientation = getResources().getConfiguration().orientation; 
if(orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    view.setBackgroundResource (R.drawable.background_land); 
} else { 
    view.setBackgroundResource (R.drawable.background_port); 
} 

en su onCreate() y/o onConfigurationChange().

Con este método, usaría el mismo diseño para paisaje y retrato.

+1

Esto funciona pero yo personalmente usaría 'Ver vista = this.getWindow(). GetDecorView();' – Squonk

+0

Oh, sí. Tienes razón. – Cephron

+0

También puede definir dos diseños de xml por separado. Uno para el retrato y otro para el paisaje. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

19

He logrado lo mismo creando la carpeta drawable-land-hdpi y copiando mi fondo de paisaje en ella.

Yo no quiero cambiar mi código, sólo tengo un archivo de diseño de XML y dos imágenes diferentes background.jpg en dos carpetas dibujable-tierra-IPAP y dibujable-IPAP.

+6

simplemente si alguien se encuentra con los mismos problemas: para usar esto no debe tener android: configChanges = "orientación" establecida en el manifiesto para su actividad; de lo contrario, la actividad actual no se destruye y los recursos se reinician desde los directorios correspondientes ... aquí hay una descripción de todos los modificadores que puede usar http://developer.android.com/guide /topics/resources/providing-resources.html –

+0

android: configChanges = "orientation" establecido en el manifiesto para su actividad –

+0

Esto funcionó perfectamente, ¡gracias! – mpemburn

Cuestiones relacionadas