2017-07-25 4 views
1

J'ai suivi this tutorial pas à pas, mais lorsque je veux charger l'image de profil et l'arrière-plan de l'en-tête, rien n'a été affiché. J'ai ajouté l'autorisation d'Internet et le wifi est sur et initialisé tiroirimageloader. Quel pourrait être le problème?Impossible de charger l'image de profil et l'arrière-plan de l'en-tête à partir de l'URL

Activité principale:

import android.net.Uri; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.widget.ImageView; 

import com.mikepenz.materialdrawer.DrawerBuilder; 
import com.mikepenz.materialdrawer.AccountHeader; 
import com.mikepenz.materialdrawer.AccountHeaderBuilder; 
import com.mikepenz.materialdrawer.model.ProfileDrawerItem; 
import com.mikepenz.materialdrawer.model.interfaces.IProfile; 

import com.bumptech.glide.Glide; 


public class MainActivity extends AppCompatActivity {; 

Toolbar toolbar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    new DrawerBuilder().withActivity(this).build(); 

    AccountHeader headerResult = new AccountHeaderBuilder() 
      .withActivity(this) 
      .addProfiles(
        new ProfileDrawerItem().withName("Mike 
    Penz").withEmail("[email protected]").withIcon(Uri. 
    parse("https://avatars3.githubusercontent.com/u/887462?v=3&s=460")) 
      ) 
      .withOnAccountHeaderListener(new 
    AccountHeader.OnAccountHeaderListener() { 
       @Override 
       public boolean onProfileChanged(View view, IProfile profile, 
    boolean currentProfile) { 
        return false; 
       } 
      }) 
      .build(); 

    new DrawerBuilder() 
      .withActivity(this) 
      .withAccountHeader(headerResult) 
      .build(); 

    ImageView view = headerResult.getHeaderBackgroundView(); 
    Glide.with(this).load("www.api.androidhive.info/images/nav-menu-header- 
    bg.jpg").into(view); 
    } 

    } 

activité personnalisée:

import android.app.Application; 
import android.content.Context; 
import android.graphics.drawable.Drawable; 
import android.net.Uri; 
import android.widget.ImageView; 

import com.bumptech.glide.Glide; 
import com.mikepenz.iconics.IconicsDrawable; 
import com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader; 
import com.mikepenz.materialdrawer.util.DrawerImageLoader; 
import com.mikepenz.materialdrawer.util.DrawerUIUtils; 

/** 
* Created by mikepenz on 27.03.15. 
* 
*/ 
public class CustomApplication extends Application { 

@Override 
public void onCreate() { 
    super.onCreate(); 

    /* 
    //initialize and create the image loader logic 
    DrawerImageLoader.init(new AbstractDrawerImageLoader() { 
     @Override 
     public void set(ImageView imageView, Uri uri, Drawable placeholder) 
    { 

    Picasso.with(imageView.getContext()).load(uri).placeholder(placeholder) 
    .into(imageView); 
     } 
     @Override 
     public void cancel(ImageView imageView) { 
      Picasso.with(imageView.getContext()).cancelRequest(imageView); 
     } 
    }); 
    */ 

    //initialize and create the image loader logic 
    DrawerImageLoader.init(new AbstractDrawerImageLoader() { 
     @Override 
     public void set(ImageView imageView, Uri uri, Drawable placeholder, 
    String tag) { 
    Glide.with(imageView.getContext()).load(uri) 
    .placeholder(placeholder).into(imageView); 
     } 

     @Override 
     public void cancel(ImageView imageView) { 
      Glide.clear(imageView); 
     } 

     @Override 
     public Drawable placeholder(Context ctx, String tag) { 
      //define different placeholders for different imageView targets 
      //default tags are accessible via the DrawerImageLoader.Tags 
      if (DrawerImageLoader.Tags.PROFILE.name().equals(tag)) { 
       return DrawerUIUtils.getPlaceHolder(ctx); 
      } else if 
(DrawerImageLoader.Tags.ACCOUNT_HEADER.name().equals(tag)) { 
       return new IconicsDrawable(ctx).iconText(" 
").backgroundColorRes(com.mikepenz.materialdrawer.R.color.primary) 
.sizeDp(56); 
      } else if ("customUrlItem".equals(tag)) { 
       return new IconicsDrawable(ctx).iconText(" 
").backgroundColorRes(R.color.md_red_500).sizeDp(56); 
      } 

      //we use the default one for 
      //DrawerImageLoader.Tags.PROFILE_DRAWER_ITEM.name() 

      return super.placeholder(ctx, tag); 
     } 
    }); 
} 
} 

manifeste:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="ir.techend.yusof.ghaza"> 

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
</manifest> 
+0

ce tutoriel vous parlez? – DroiDev

+0

mikepenz tutoriel – Yusof

+0

suis-je censé savoir où c'est? pouvez-vous mettre en place une référence dans. votre question ..... nm -> vous avez fait – DroiDev

Répondre

1

S'il vous plaît enlever la dupliqués

new DrawerBuilder().withActivity(this).build(); 

que vous avez dans votre MainActivity, vous ne devez .build() un Drawer (et dans certains cas, .append() autre)

Le code du Drawer vous assurerez pas 2 DrawerLayout « s sont gonflés.

En outre j'ai vérifié l'URL pour l'image d'en-tête. Celui-ci n'existe pas. (http://www.api.androidhive.info/images/nav-menu-header-bg.jpg renvoie une erreur 404)

+0

hey mike, j'ai eu un problème de réseau et pas ajouté le chargeur d'image init. maintenant je vais bien. merci pour votre bibliothèque;). – Yusof

0

bibliothèque Utilisez Picasso pour que

Picasso.with(YourActivityName.this).load(url_img).into(imageView); 

et dans votre dépendance gradle mis

compile 'com.squareup.picasso:picasso:2.5.2'