代码之家  ›  专栏  ›  技术社区  ›  A. Bechir

安卓:使用毕加索以全屏模式显示图像

  •  0
  • A. Bechir  · 技术社区  · 7 年前

    您好,我用毕加索在gridView中显示了一些图像,当我尝试以全屏模式(在new acivity中)打开每个图像(在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;
    

    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 回复  |  直到 7 年前
        1
  •  0
  •   Stuckzilla    7 年前

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

    Grid View Android Doc

    这个链接有一个简单易懂的代码,准确地描述了你要做的事情。使用这个位置来找到你正在点击的元素,并获得相应的图像url

        2
  •  0
  •   Ben P.    7 年前

    ls.setOnItemClickListener() 每一次 getView() 返回。

    AdapterView.OnItemClickListener AdapterView ,而你的目的是与众不同 哪一个 position 论点

    我不知道在哪里 imagepath getView() ,但我想是这样的 String imagepath = getItem(position).getImagePath()

    1) 移动 getView() onCreate() 或者你在什么时候设置 GridView .

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

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