多张图片和文字添加到每个幻灯片ViewPager [英] Add multiple images and text to each ViewPager slide

查看:157
本文介绍了多张图片和文字添加到每个幻灯片ViewPager的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有3张幻灯片一个ViewPager。每张幻灯片我希望能够添加3图像和几个不同的文字标签。在code目前,我有让我到一个图像添加到每张幻灯片。我如何获得多个图像和文本每张幻灯片这项工作困惑。任何帮助将是AP preciated。

 公共类ImageAdapter扩展PagerAdapter {    私人最终上下文的背景下;
    私人最终诠释[] = GalImages新INT [] {
        R.drawable.workout_widget_master,
        R.drawable.workout_widget_master,
        R.drawable.workout_widget_master
    };    ImageAdapter(上下文的背景下){
        this.context =背景;
    }
    @覆盖
    公众诠释的getCount(){
        返回GalImages.length;
    }    @覆盖
    公共布尔isViewFromObject(查看视图,Object对象){
        返回查看==对象;
    }    @覆盖
    公共对象instantiateItem(ViewGroup中的容器,INT位置){
        ImageView的ImageView的=新ImageView的(上下文);
        INT填充= 10;
        imageView.setPadding(填充,填充,填充,填充);
        imageView.setScaleType(ImageView.ScaleType.MATRIX);
        imageView.setImageResource(GalImages [位置]);
        container.addView(ImageView的,0);
        返回ImageView的;
    }    @覆盖
    公共无效destroyItem(ViewGroup中的容器,INT位置,Object对象){
        container.removeView((ImageView的)对象);
    }
}


解决方案

 公共类ViewPagerAdapter2扩展PagerAdapter {上下文语境;
的String []此搜索;
的String []描述;
LayoutInflater吹气;公共ViewPagerAdapter2(上下文的背景下,的String []此搜索,的String []描述){
    this.context =背景;
    this.image1 = image1的;
    this.description =描述;
}@覆盖
公共布尔isViewFromObject(查看视图,Object对象){
    返回查看==((的LinearLayout)对象);
}@覆盖
公共对象instantiateItem(ViewGroup中的容器,INT位置){
    TextView的DES;    吹气=(LayoutInflater)上下文
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    查看ItemView控件= inflater.inflate(R.layout.slider,集装箱,
            假);
    DES =(TextView中)itemView.findViewById(R.id.slider_des);
    des.setText(说明[位置]);     AQuery AQ =新AQuery(ItemView控件);
     aq.id(R.id.imageView1)在图像配(此搜索[位置],真的,真的,0,0,空,AQuery.FADE_IN,AQuery.RATIO_ preSERVE);     ((ViewPager)容器).removeView(ItemView控件);    ((ViewPager)容器).addView(ItemView控件);    返回ItemView控件;
}@覆盖
公共无效destroyItem(ViewGroup中的容器,INT位置,Object对象){
    ((ViewPager)容器).removeView((的LinearLayout)对象);}@覆盖
公众诠释的getCount(){
    // TODO自动生成方法存根
    返回description.length;}}

这是你想要什么的实现......现在宣布为TextView的内容的变量,声明imageviews,绑定在一起EM ...这应该工作...上的变量,你的活动传中声明的顺序到适配器。该解决方案将工作得很好。香港专业教育学院使用aquery从URL获取图像。你可以简单地通过对图像资源,并通过绑定imageview.setImageResource();

I have a ViewPager with 3 slides. On each slide I want to be able to add 3 images and a couple different text labels. The code I currently have allows me to add a single image to each slide. I'm confused on how to get this work with multiple images and text for each slide. Any help would be appreciated.

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;

}

}

this is an implementation of exactly what you want... now declare the variables for textview contents , declare the imageviews , bind em together... this should work...on your activity pass on the variables in the declared order to the adapter. the solution will work flawlessly. Ive used aquery to get image from url. you can simply pass on the image resource and bind it via imageview.setImageResource(); method

这篇关于多张图片和文字添加到每个幻灯片ViewPager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆