Android:使用Picasso以全屏模式显示图像

时间:2017-08-02 20:33:10

标签: android gridview picasso

您好我在使用Picasso的gridView中显示了一些图像,当我尝试在全屏模式下打开每个图像(在onItemClickListener之后)(在新的活动中)它只显示我的gridView中的第一个图像,无论我点击的图像,是我的问题。 这是我的代码,我在gridView和OnItemClickListener中显示来自url的图像。

Picasso.with(ToolDescription.this)
       .load(SaveSettings.ServerURL +"Images/"+ imagepath)
       .into(imageView);

       ls.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Intent intent = new Intent(ToolDescription.this, ImageFull.class);
                intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ imagepath);
                startActivity(intent);
            }
        });

            return myView;

这是我的第二个活动(名为ImageFull),我想显示点击的图片:

ImageView imageView = (ImageView) findViewById(R.id.fullImage);
String imagepath = getIntent().getStringExtra("imagepath");

    Picasso.with(ImageFull.this)
                .load(imagepath)
                .noFade()
                .resize(800, 800)
                .centerCrop()
                .into(imageView);

2 个答案:

答案 0 :(得分:0)

为每个imageview设置单独的单击侦听器,或使用int位置从gridview项目数组中提取正确的imagepath。

Grid View Android Doc

此链接有一个易于遵循的代码,正是您要执行的操作。使用该位置查找您要点击的元素以获取相应的图像网址

答案 1 :(得分:0)

看起来发生的事情是,每次ls.setOnItemClickListener()返回时,您都会调用getView()

AdapterView.OnItemClickListener是整个AdapterView的单个侦听器,您打算通过使用position参数来区分单击了哪个项。

我不确定imagepathgetView()来自哪里,但我认为它类似于String imagepath = getItem(position).getImagePath()。如果是这种情况,您可以通过以下方式解决问题:

1)将ls.setOnItemClickListener()移出getView() ...可能会移至onCreate()或您设置GridView

2)改变

intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ imagepath);

String currentImagePath = getItem(position).getImagePath();
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ currentImagePath);

可能会出现语法错误,因为我看不到你的其余代码,但希望这足以让你能够完成它们。

相关问题