毕加索没有使用自定义链接Android显示图像

时间:2017-02-19 16:25:52

标签: java android image picasso

我最近一直在与Picasso合作并尝试将图像显示到ImageView。如果我放一个普通的图像链接它可以工作,但我的问题是我需要创建一个自定义图像链接显示在我的imageview上。这是因为我必须检索特定用户上传的图像,为此,我创建了一个最终的String变量来创建我的链接。

这是:

int a = 1;
    final String imageLink = "http://www.mywebsite.com/pictures/" + username_ + "/" + username_ + a +".jpg";

    Picasso.with(getApplicationContext()).load(imageLink).into(ivImagenes);
    tvFotoid.setText("Foto: "+ a);

    bPlus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (g.getA() != 5 ){
                g.setA(g.getA()+1);
            } else{
                Toast.makeText(getApplicationContext(),"No hay más imágenes.",Toast.LENGTH_SHORT).show();
            }

            Picasso.with(getApplicationContext()).load(imageLink).into(ivImagenes);
            tvFotoid.setText("Foto: "+ g.getA());
        }
    });

    bMenos.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (g.getA() != 1 ){
                g.setA(g.getA()-1);
            } else{
                Toast.makeText(getApplicationContext(),"No hay más imágenes.",Toast.LENGTH_SHORT).show();
            }

            Picasso.with(getApplicationContext()).load(imageLink).into(ivImagenes);
            tvFotoid.setText("Foto: "+ g.getA());
        }
    });

基本上每个用户都有5张照片,并且+和 - 按钮将通过它们。我必须根据每个用户的用户名检索图像。

所以最后的链接是www.mywebsite.com/pictures/username/username1.jpg或/username2.jpg等。

如果我直接将它作为链接,它可以工作,但它只会显示一个用户的照片。

请帮助,任何帮助都足够了。谢谢。

1 个答案:

答案 0 :(得分:0)

此处使用final似乎不正确。 试试这个:

updateImage(username_, 1);

bPlus.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (g.getA() != 5 ){
            g.setA(g.getA()+1);
        } else{
            Toast.makeText(getApplicationContext(),"No hay más imágenes.",Toast.LENGTH_SHORT).show();
        }

        updateImage(username_, g.getA());
    }
});

bMenos.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (g.getA() != 1 ){
            g.setA(g.getA()-1);
        } else{
            Toast.makeText(getApplicationContext(),"No hay más imágenes.",Toast.LENGTH_SHORT).show();
        }

        updateImage(username_, g.getA());
    }
});


private void updateImage(String username, int index) {
    Picasso.with(getApplicationContext()).load(getImageLink(username, index)).into(ivImagenes);
    tvFotoid.setText("Foto: "+ index);
}

private String getImageLink(String username, int index) {
    return "http://www.mywebsite.com/pictures/" + username + "/" + username + a + ".jpg"
}