2012-02-10 15 views
14

No sé cómo obtener una imagen para llenar la pantalla, he intentado todo, tal vez hay algún diseño particular que debería estar usando ...?Android: cómo obtener ImageView para llenar la pantalla

estoy usando un ImageView, sin embargo esto sólo se llena aproximadamente el 70% de la pantalla, dejando espacio en blanco en la parte inferior ...

Por el momento sólo estoy usando un LinearLayout y el establecimiento de su fondo de Mi imagen. Mientras esto llena la pantalla, la imagen se estira ligeramente, lo que no quiero.

¡Cualquier ayuda sería muy apreciada! :)

El código dentro de las etiquetas ImageView de mi archivo de diseño son:

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:scaleType="centerCrop" 
android:adjustViewBounds="true" 
android:src="@drawable/image" 
+0

android: layout_height = "match_parent" haría – njzk2

Respuesta

42

// en su atributo xml imagen como

android:scaleType="fitXY" 

o // usando través programáticamente

imgview.setScaleType(ScaleType.FIT_XY); 

Nota: esto se aplica a cuando la imagen se ajusta con Android : src = "..." en lugar de android: background = "..." ya que los fondos están configurados por defecto para estirar y ajustar a la Vista.

+0

cuando dices usar esto a través de tu código también, ¿te refieres a tu Actividad? – Shaw

+0

@Shaw no quiero decir que también puede hacerlo a través del programa –

+2

Esta respuesta alargará la imagen - Sé que no era un requisito del OP, pero si desea una respuesta que llene la pantalla sin arruinar la relación de aspecto, verifique @Revs respuesta a continuación. – ntgCleaner

4

utilizar la línea de abajo en el código XML imagen View.

android:scaleType="fitXY" 
+0

esto no se mantendrá la relación – njzk2

+0

puede ser pero llenará la pantalla como OP quiere y si la resolución de la imagen es lo suficientemente buena, entonces no debería dar el problema. – Sunny

-1

Puede usar prácticamente cualquier diseño y simplemente establecer la imagen de fondo en su imagen. Luego solo haga que el ancho y el alto llenen el elemento principal.

o ejemplo, si desea sólo una imagen fijaremos para su diseño lineal principal

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:orientation="horizontal" 
     android:layout_height="fill_parent" 
     android:background="@drawable/yourimage"> 
</LinearLayout>  
6
android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:adjustViewBounds="true" 
    android:src="@drawable/image" 

acaba de cambiar ancho de la disposición y altura que trabajar tanto con 'centro' y 'centercrop'

+1

No estoy seguro de por qué esto no se acepta. Esta respuesta funciona sin estirar la imagen y perder la relación de aspecto correcta. – ntgCleaner

0

No se olvide de quitar

android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 

de los LayoutParams, en la parte superior del xml de la actividad. De lo contrario, la imagen tendrá problemas para llenar toda la pantalla.

Cuestiones relacionadas