0

Так что я как бы на новой стороне с Android Studio и Android в целом. В настоящее время я работаю над приложением, которое (где одна из функций) вытащит изображение профиля пользователя из Facebook, например, и изменит ImageView в Navigation Drawer соответственно (например, в приложении Gmail, где отображается изображение профиля G +) , Битку Facebook можно оставить еще на один день, однако я застрял с определенной проблемой в течение последних 2 с половиной часов, и мне может понадобиться помощь. Мой onCreate метод выглядит следующим образом:Изменение ImageView в HeaderView

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) 
     { 
      Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
        .setAction("Action", null).show(); 
     } 
    }); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    View headerView = navigationView.inflateHeaderView(R.layout.nav_header_main); 

    imgProfilePic = (ImageView) headerView.findViewById(R.id.imgProfilePic); 

    imgProfilePic.setImageResource(R.drawable.troll_face); 
} 

Много моих onCreate метода все еще довольно «ваниль», бит, где я думаю, что проблема лежит пред NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);. Моя основная проблема, с которой я столкнулась, состоит в том, что в моем Navigation Drawer теперь отображаются два заголовка, обычный до и один (где ресурс был изменен) после него.

Я много сделал с Googling в связи с этой проблемой, и некоторые люди упомянули об этом из-за ошибки в Android Studio.

Любая помощь с моей проблемой была бы весьма признательна.

ответ

0

В моем приложении я показываю картину таким образом:

if (mNavigationView.getHeaderCount() > 0) { 
     ImageView mBackground = (ImageView) mNavigationView.getHeaderView(0).findViewById(R.id.user_background); 
     CircleImageView mUserIcon = (CircleImageView) mNavigationView.getHeaderView(0).findViewById(R.id.user_icon); 

     Glide.with(this).load(R.drawable.background).centerCrop().into(mBackground); 
     Glide.with(this).load(R.drawable.me).centerCrop().into(mUserIcon); 
    } 

Важно то, что я бы посоветовал вам использует Glide даже для настройки изображения с ресурсов. Эта библиотека сжимает размер изображения и, таким образом, делает ваше приложение намного быстрее.

О себе - вы должны искать первый и единственный заголовок. Вот в чем дело:

 Смежные вопросы

  • Нет связанных вопросов^_^