我有一个带有 3 张幻灯片的 ViewPager。我希望能够在每张幻灯片上添加 3 张图像和几个不同的文本标签。我当前拥有的代码允许我向每张幻灯片添加单个图像。我对如何在每张幻灯片上使用多个图像和文本进行这项工作感到困惑。任何帮助,将不胜感激。
public class ImageAdapter extends PagerAdapter {
private final Context context;
private final int[] GalImages = new int[] {
R.drawable.workout_widget_master,
R.drawable.workout_widget_master,
R.drawable.workout_widget_master
};
ImageAdapter(Context context){
this.context=context;
}
@Override
public int getCount() {
return GalImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
int padding = 10;
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.MATRIX);
imageView.setImageResource(GalImages[position]);
container.addView(imageView, 0);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((ImageView) object);
}
}
public class ViewPagerAdapter2 extends PagerAdapter {
Context context;
String[] image1;
String[] description;
LayoutInflater inflater;
public ViewPagerAdapter2(Context context, String[] image1,String[] description) {
this.context = context;
this.image1 = image1;
this.description=description;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((LinearLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
TextView des;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.slider, container,
false);
des = (TextView) itemView.findViewById(R.id.slider_des);
des.setText(description[position]);
AQuery aq = new AQuery(itemView);
aq.id(R.id.imageView1).image(image1[position], true, true, 0, 0, null, AQuery.FADE_IN, AQuery.RATIO_PRESERVE);
((ViewPager) container).removeView(itemView);
((ViewPager) container).addView(itemView);
return itemView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((LinearLayout) object);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return description.length;
}
}
这正是您想要的实现...现在声明 textview 内容的变量,声明 imageviews,将它们绑定在一起...这应该可以工作...在您的活动中按声明的顺序将变量传递给适配器。该解决方案将完美运行。我使用 aquery 从 url 获取图像。您可以简单地传递图像资源并通过以下方式绑定它imageview.setImageResource();
method
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)