Android: 使用 Picasso 以全屏模式显示图像
Android: Display images in full screen mode using 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;
这是我的第二个 activity(名为 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);
为每个图像视图设置单独的点击侦听器或使用 int 位置从您的 gridview 项目数组中提取正确的图像路径。
这个 link 有一个易于理解的代码,可以准确地说明您要执行的操作。使用位置来查找您正在单击的元素并获取相应的图像 url
看起来你每次都在调用 ls.setOnItemClickListener()
getView()
returns.
AdapterView.OnItemClickListener
是整个 AdapterView
的单个侦听器,您打算通过使用其 position
参数。
我不确定 imagepath
是从 getView()
内部传来的,但我认为它类似于 String imagepath = getItem(position).getImagePath()
。如果是这种情况,您可以通过以下方式解决问题:
1) 将 ls.setOnItemClickListener()
从 getView()
...
2) 更改
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ imagepath);
至
String currentImagePath = getItem(position).getImagePath();
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ currentImagePath);
可能会有语法错误,因为我看不到您的其余代码,但希望这足以让您能够完成这些错误。
您好,我使用 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;
这是我的第二个 activity(名为 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);
为每个图像视图设置单独的点击侦听器或使用 int 位置从您的 gridview 项目数组中提取正确的图像路径。
这个 link 有一个易于理解的代码,可以准确地说明您要执行的操作。使用位置来查找您正在单击的元素并获取相应的图像 url
看起来你每次都在调用 ls.setOnItemClickListener()
getView()
returns.
AdapterView.OnItemClickListener
是整个 AdapterView
的单个侦听器,您打算通过使用其 position
参数。
我不确定 imagepath
是从 getView()
内部传来的,但我认为它类似于 String imagepath = getItem(position).getImagePath()
。如果是这种情况,您可以通过以下方式解决问题:
1) 将 ls.setOnItemClickListener()
从 getView()
...
2) 更改
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ imagepath);
至
String currentImagePath = getItem(position).getImagePath();
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ currentImagePath);
可能会有语法错误,因为我看不到您的其余代码,但希望这足以让您能够完成这些错误。