Java 如何使用毕加索从URL更改导航抽屉中的汉堡菜单图标?

Java 如何使用毕加索从URL更改导航抽屉中的汉堡菜单图标?,java,android,navigation-drawer,picasso,hamburger-menu,Java,Android,Navigation Drawer,Picasso,Hamburger Menu,我希望我的应用程序通过使用毕加索从url接收图像,并将此图像转换为标准图标,并将其设置为导航抽屉中的汉堡菜单图标。我有一个代码,可以从res/mipmap文件夹中很好地实现这一点。但在这种状态下,我应该使用(例如android Asset Studio)手动将图像转换为标准的android图标,并手动将其存储在mipmap文件夹中 这是做得非常好的代码: getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar()

我希望我的应用程序通过使用毕加索从url接收图像,并将此图像转换为标准图标,并将其设置为导航抽屉中的汉堡菜单图标。我有一个代码,可以从res/mipmap文件夹中很好地实现这一点。但在这种状态下,我应该使用(例如android Asset Studio)手动将图像转换为标准的android图标,并手动将其存储在mipmap文件夹中

这是做得非常好的代码:

getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.mipmap.ic_farid);
然后我从毕加索的url中找到了这样做的代码。此代码可以工作,但汉堡图标形状已损坏,非常大且不好

代码如下:

{
        final Target mTarget = new Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) {
                Log.d("DEBUG", "onBitmapLoaded");
                 mBitmapDrawable = new BitmapDrawable(getResources(), bitmap);                                     
            }

            @Override
            public void onBitmapFailed(Exception e, Drawable errorDrawable) {

            }
            @Override
            public void onPrepareLoad(Drawable drawable) {
                Log.d("DEBUG", "onPrepareLoad");
            }
        };
        Picasso.get().load("http://192.168.1.53:8080/Farid/1.jpg").into(mTarget);

}
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeAsUpIndicator(mBitmapDrawable);
我怎样才能解决这个问题?当从url加载图像时,我想将其转换为标准的android图标。
谢谢

您需要将
设置HomeAsupIndicator
放入
onBitmapLoaded

{
        final Target mTarget = new Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom loadedFrom) {
                Log.d("DEBUG", "onBitmapLoaded");
                 Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 50, 50, false);
                 mBitmapDrawable = new BitmapDrawable(getResources(), scaledBitmap);
                 getSupportActionBar().setHomeAsUpIndicator(mBitmapDrawable);
            }

            @Override
            public void onBitmapFailed(Exception e, Drawable errorDrawable) {

            }
            @Override
            public void onPrepareLoad(Drawable drawable) {
                Log.d("DEBUG", "onPrepareLoad");
            }
        };
        Picasso.get().load("http://192.168.1.53:8080/Farid/1.jpg").into(mTarget);

}
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

请尝试指定图像高度和宽度

Picasso.with(context)
             .load(uri).resize(100, 100).centerCrop()
             .placeholder(R.drawable.type_pic)
             .error(R.drawable.type_pic)
             .into(holder.icon);

我这样做了,但图标仍然是坏的,大的和腐败的缩放位图,然后,我更新了我的答案。