来自URL的Android ImageView:未设置(使用Picasso)

时间:2016-12-27 07:37:38

标签: android picasso

我是Android开发的新手,所以我可能会做一些愚蠢的事情。有什么想法为什么这段代码不起作用?

它编译并运行,但实际上并没有成功设置图像(之前设置为灰色背景)。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my_activity);
    Button getImageButton = (Button) (findViewById(R.id.btnGetImage));
    getImageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ImageView myImageView = (ImageView) (findViewById(R.id.myImageView));
            Picasso.with(v.getContext()).load("https://www.example.com/someimage").into(myImageView);
        }
    });
}

4 个答案:

答案 0 :(得分:1)

  

以这种方式改变你的代码

MATCH path=(user1:User)-[knows:KNOWS*2..2]->(user2:User)
WHERE user1.mobile = 9000090001 AND user1 <> user2 AND NOT (user1)-[:KNOWS]->(user2)
RETURN distinct user2
ORDER BY user2.mobile

此处Picasso.with(YOUR_ACTIVITY_NAME.this).load("https://www.example.com/someimage").into(myImageView); 与主要背景无关,因此无法帮助您,我们需要传递当前活动的背景

答案 1 :(得分:1)

请尝试这个并告诉我。

 @Override
    protected void onCreate (Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_activity);
        Button getImageButton = (Button) (findViewById(R.id.btnGetImage));
        ImageView myImageView = (ImageView) (findViewById(R.id.myImageView));
        getImageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Picasso.with(YourActivityName.this).load("https://www.example.com/someimage").into(myImageView);
            }
        });
    }

答案 2 :(得分:1)

丁丁这里是我的回答

我确信你添加了依赖

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

并使用了正确的网址

Picasso.with(v.getContext()).load("http://i.imgur.com/DvpvklR.png").into(imageView);

我告诉你哪里出错!!

魔术:您是否添加了互联网许可?它需要在你的清单中

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

而不是你的代码很好

但我建议您使用getApplicationContext()

从我的评论中复制

  

Picasso是一个库,而不是一个应用程序。在创造时   Picasso实例,如果你不传递上下文,那你觉得怎么样?   它将从中获取应用程序上下文?为了它的工作需要   上下文,它肯定需要由应用程序提供   使用这个库。它还可以防止泄漏活动(如果是这样的话)   你通过了什么,下面的一些答案已经使用过)切换到   应用背景。使用getApplicationContext()

对于那些随机提出答案的人来说,这也是

  • View.getContext():返回视图当前运行的上下文。通常是当前活动的Activity。

  • Activity.getApplicationContext():返回整个应用程序的上下文(所有活动在其中运行的进程) 的)。如果需要,请使用此代替当前的Activity上下文 上下文绑定到整个应用程序的生命周期,而不仅仅是 当前的活动。

  • ContextWrapper.getBaseContext():如果您需要从另一个上下文中访问Context,则使用ContextWrapper。该 从内部引用的Context是通过访问ContextWrapper getBaseContext()

所以他以任何方式访问葡萄干活动背景。

干杯!

答案 3 :(得分:1)

步骤1在“清单”中检查“Internet连接”

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

第2步 compile "com.squareup.picasso:picasso:2.4.0"

第3步图片网址未在浏览器中显示任何图片,将您的网址粘贴到浏览器中,如果您获得图片,则可以将该图片设置为imagview

第4步检查网址是否正常有没有.file文件扩展名为.png或.jpg

@覆盖

     protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my_activity);

            Button getImageButton = (Button) (findViewById(R.id.btnGetImage));

            getImageButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {   
   //Initializing the ImageView
    imageView = (ImageView) findViewById(R.id.imageView);

    //Loading Image from URL
    Picasso.with(this)
            .load("https://www.example.com/someimage")
            .placeholder(R.drawable.placeholder)   // optional
            .error(R.drawable.error)      // optional
            .resize(400,400)                        // optional
            .into(imageView);
}
});
}