2017-08-12 11 views
-2

Ich versuche, eine Navigation Drawer zu erstellen. Ich möchte mein Bild im Header von Navigation Drawer verwenden.Navigationsschublade Headerbild

Wenn ich mein JPG-Bild verwende und Navigation Drawer öffne, öffnet es sehr langsam und funktioniert nicht richtig. Ich möchte auch, dass mein Bild im Kreis wie in Google Mail App angezeigt werden soll. Ich habe mein JPEG Bild in drawable Ordner von 500kb Größe.

Was kann getan werden, um dieses Problem zu lösen? in NavDrawer

header.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="190dp"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:id="@+id/headerImage" 
     android:scaleType="centerCrop" 
     android:src="@drawable/avina"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/headerImage" 
     android:id="@+id/headertext" 
     android:text="Avinash" 
     android:textSize="20sp"/> 
</RelativeLayout> 

Antwort

1

erstellen header_layout Und es kreisförmig zu machen. Sie können diese Bibliothek für ein kreisförmiges Bild verwenden.

compile 'de.hdodenhof:circleimageview:2.1.0' 

Jetzt ist Ihre Struktur Layout wie:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="304dp" 
android:layout_height="172dp" 
android:orientation="vertical"> 

<de.hdodenhof.circleimageview.CircleImageView 
    android:id="@+id/circularImageId" 
    android:layout_width="64dp" 
    android:layout_height="64dp" 
    android:layout_marginStart="16dp" 
    android:layout_marginTop="40dp" 
    android:src="@drawable/taplejung_nepal" /> 

<TextView 
    android:id="@+id/loginTextId" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="16dp" 
    android:layout_marginStart="16dp" 
    android:layout_marginTop="20dp" 
    android:fontFamily="sans-serif" 
    android:text="@string/log_in" 
    android:textColor="@color/colorWhite" 
    android:textSize="14sp" 
    android:textStyle="bold" /> 
</LinearLayout> 

können Sie inflate dieses Layout. Ich nehme an, Sie haben NavigationView in Ihrer Schublade Layout-Datei.

NavigationView navigationView = (NavigationView) findViewById(R.id.navigationViewId); 

View headerView = navigationView.inflateHeaderView(R.layout.nav_header); 
CircleImageView drawerHeaderImage = (CircleImageView) headerView.findViewById(R.id.circularImageId); 
TextView user = (TextView) headerView.findViewById(R.id.loginTextId); 
+1

Es ist für mich Arbeit ..thankyou –

0

sollte Ihre Bildgröße sehr klein sein, wie 120 x 120 px mehr als genug, um als Header-Bild ist. unter Befehl unten Schritte folgen

hinzufügen in build.gradle Abhängigkeiten

compile 'com.mikhaellopez:circularimageview:3.0.2' 

bauen die Application und Add CircularImageView statt ImageView

<com.mikhaellopez.circularimageview.CircularImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:id="@+id/headerImage" 
     android:scaleType="centerCrop" 
     android:src="@drawable/avina" 
     app:civ_border_color="#EEEEEE" 
     app:civ_border_width="4dp" 
     app:civ_shadow="true" 
     app:civ_shadow_radius="10" 
     app:civ_shadow_color="#8BC34A"/> 
+0

Es zeigt Fehler E: \ AndroidProject \ Avinash \ app \ src \ main \ res \ layout \ header.xml Fehler: (6) Fehler beim Parsen von XML: Nicht konsolidiert Präfix –

0

Verwenden Sie die unten stehende Bibliothek in Ihrer Größe;

‚kompilieren 'de.hdodenhof: circleimageview: 1.3.0'

dann Imageview in xml laden;

<de.hdodenhof.circleimageview.CircleImageView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/profile_image" 
    android:layout_width="120dp" 
    android:layout_height="120dp" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:src="@drawable/your_picture"  />