首页 > 解决方案 > 如何从 Picasso 的 URL 接收图标并在第一次访问而不是重新运行应用程序时显示它?

问题描述

通过使用 stackoverflow 中的信息,我终于可以编写一个从 URL 接收图像并使用 Picasso 将其设置为导航抽屉中的汉堡菜单图标的代码。它工作得很好。但是还是有一个问题:(第一次安装应用程序并运行它时)或(关闭手机然后重新运行应用程序时)图标不显示。重新运行应用程序时(在关闭手机之前),应用程序运行正常并显示图标。我该如何解决这个问题?

 {
            final Target mTarget = new Target() {
                @Override
                public void onBitmapLoaded(Bitmap bitmap,Picasso.LoadedFrom loadedFrom) {
                    Log.d("DEBUG", "onBitmapLoaded");
                    Bitmap scaledBitmap =  Bitmap.createScaledBitmap(bitmap, 100, 100, 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);

标签: javaandroidnavigation-drawerpicasso

解决方案


您可以为图标创建本地缓存,下载图标后可以将其转换为浮动并存储在sharePreference中,当图标无法加载时,您可以将缓存的图标从float转换为sharePreference中的位图。该线程可能会帮助您将位图存储到 SharePreference


推荐阅读