L'équivalent de ImageView scaleType 'centerCrop' bitmap drawable gravité

J'ai créé une activité avec une image d'en-tête. Cette image d'en-tête est créée à l'origine de l'int de l'Activité mise en page xml à l'aide d'une ImageView où la scaleType est fixé à centerCrop. C'est ce que je veux, c'centres de l'image, en l'attachant à gauche et à droite en mode portrait, en montrant tous en mode paysage.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="30dp"
    android:paddingBottom="6dp"
    android:paddingLeft="6dp"
    android:paddingRight="6dp"
    android:background="#919EAC"
    android:orientation="vertical" >

<ImageView
    android:id="@+id/header_image"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:contentDescription="@string/header_description"
    android:scaleType="centerCrop"
    android:src="@drawable/header" />

    .... <other views> ...

Je voudrais le remplacer par un fond dessiné afin que je puisse utiliser l'image d'en-tête de l'espace pour l'affichage des données, et ça m'évite de répéter la même disposition dans les différentes activités.

Pour cette raison, j'ai créé un drawable que je peux consulter à l'android:attribut background:

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item>
            <shape android:shape="rectangle" >
                <solid android:color="#919EAC" />
            </shape>
        </item>
        <item>
            <bitmap 
                android:antialias="true"
                android:gravity="top|center_horizontal"
                android:src="@drawable/header" />
        </item>
    </layer-list>

Ce drawable définit la couleur d'arrière-plan qui, autrement, la mise en page serait à définir et il définit une image d'en-tête qui, autrement, pourraient être inclus dans la présentation comme une ImageView.

Cependant, maintenant, mon image est mise à l'échelle, alors que je voudrais qu'il soit recadrée.

Vérification de l'Android à la documentation, j'ai essayé d'autres modes de gravité tels que

    android:gravity="top|clip_horizontal"

Mais il semble toujours à l'écran/échelle différemment que l'affichage de l'image.

Quelle serait la définition correcte de l'arrière-plan dessiné?

  • Avez-vous été en mesure de trouver une solution à votre problème? Je suis aux prises avec la même chose.
  • connexes stackoverflow.com/questions/5119366/...
  • Comment à propos de "fill_vertical|clip_horizontal"
InformationsquelleAutor M. le Rutte | 2013-03-13