如何在显示ImageViews的ViewPager中更改显示的位图

时间:2014-02-13 00:55:58

标签: android bitmap imageview android-viewpager android-adapter

我使用ViewPager进行图像滑动。在菜单按钮上单击我想用新处理的位图替换移位的位图。

我尝试在Activity上更改ImageView。但它改变了第一个ImageView位图,而不是显示的位图。

public void replaceImage(Bitmap newBitmap){
    ImageView imageView = (ImageView) findViewById(R.id.image);
    imageView.setBitmap(newBitmap));
}

我想我必须改变适配器上的图片。 FragmentPagerAdapter是否为我提供了我需要的功能?

我的代码(如果需要):https://gist.github.com/anonymous/e965a624b54b15a65f2c

2 个答案:

答案 0 :(得分:0)

您使用的自定义PagerAdapter可以正常工作。您可以更改数据集,适配器中的String []图像数组,也可以在instantiateItem()方法中进行更改。这是为每个图像创建ImageView的地方。在进行更改时,请记住在适配器上调用notifyDataSetChanged(),否则ViewPager将不会反映更改。

答案 1 :(得分:0)

我可以使用此代码更改当前显示的图像视图。

在适配器的instantiateItem()方法上,我给每个ImageView一个id

imageView.setId(position);

在我的setImage()函数中,我可以使用此代码找到imageView,并可以更改位图。

public void setFilterImage(){
    ImageView currentImageView = (ImageView) findViewById(pager.getCurrentItem());
    currentImageView.setImageDrawable( getResources().getDrawable( myNewBitmap ));
}