2016-09-07 19 views
0

ナビゲーション・ビューを作成するためにカスタム・ライブラリーを使用していません。サポートデザインライブラリからナビゲーションビューを使用しています。 GlideまたはFrescoを使用して、ヘッダーイメージをインターネットからカスタムイメージに設定するにはどうすればよいでしょうか。現在、私はDrawer Headerとして静的なImageViewを持っています。ナビゲーション・ドロワー・ヘッダーの画像をカスタムURLからロード

EDIT - 画像はどのサイズである必要がありますか?

答えて

2

あなたはNavigation HeaderのためにあなたのXML fileでこれを設定することができます。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="@color/colorPrimaryDark" 
    android:gravity="center_vertical" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/nav_header_margin_bottom" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/nav_header_margin_top" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"  
     android:adjustViewBounds="true" 
     android:scaleType="fitXY"/> 

</LinearLayout> 

そして、あなたのMainActivity内のURLに画像を設定するGlideを使用します。if Iドン」、私の場合は

private NavigationView navigationView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     //NavigationHeader 
     View header = navigationView.getHeaderView(0); 
     imageView = (ImageView) header.findViewById(R.id.imageView); 

      Glide 
       .with(context) 
       .load("your url") 
       .placeholder(R.drawable.priceshoes) 
       .error(R.drawable.priceshoes) 
       .into(imageView); 
    } 
1

をこれらの行を使用してください:

View header = navigationView.getHeaderView(0); 
    imageView = (ImageView) header.findViewById(R.id.imageView); 

私はsetContentView()メソッドでactivity_mainを呼び出し、プロファイル画像のImageViewは別のxmlのヘッダーレイアウトにあるため、「Target is not null」と表示されます。

関連する問題