2016-09-07 6 views
0

Я не использую какую-либо пользовательскую библиотеку, чтобы сделать вид навигации. Я использую представление навигации из Библиотеки поддержки дизайна. Как я смогу настроить изображение заголовка на пользовательское изображение из Интернета с помощью Glide или Fresco. В настоящее время у меня есть статический ImageView в качестве заголовка ящика.Загрузка изображения в заголовок навигационного ящика с настраиваемого URL-адреса

EDIT - изображение должно быть какого размера?

ответ

2

Вы можете установить это в XML file для Navigation Header:

<?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> 

И использовать Glide установить изображение с URL в вашем MainActivity:

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

В моем случае, если я не» t использовать следующие линии:

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

Я бы получил ошибку «Цель должна быть не нулевой», потому что по моему методу setContentView() я вызываю Activity_main, а ImageView изображения профиля находится в макете заголовка в отдельном xml.