【问题标题】:Android viewpager change all imagesAndroid viewpager 更改所有图像
【发布时间】:2016-10-09 12:36:40
【问题描述】:

我正在使用 viewpager 显示可绘制文件夹中的图像

public int[] mImages = new int[]{
    R.drawable.pic1,
    R.drawable.pic2, R.drawable.pic3};

我想在用户单击按钮时更改所有显示的图像 那么如何改变

    public int[] mImages = new int[]{
    R.drawable.pic1,
    R.drawable.pic2, R.drawable.pic3};

public int[] mImages = new int[]{
    R.drawable.pict7,
    R.drawable.pict8, R.drawable.pict9};

这意味着点击按钮更新viewpager图像 这是我的代码

public class MainActivity extends Activity {
ViewPager   viewPager;
public int[] mImages = new int[]{
    R.drawable.pic1,
    R.drawable.pic2, R.drawable.pic3};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
        viewPager = (ViewPager) findViewById(R.id.view_pager);



ImagePagerAdapter   adapter = new ImagePagerAdapter();
    viewPager.setAdapter(adapter);


}



private class ImagePagerAdapter extends PagerAdapter {

    @Override
    public int getCount() {
        return mImages.length;
    }
    public int getImageId(int pos){return mImages[pos];}
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == ((ImageView) object);
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager) container).removeView((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {


        Context context = MainActivity.this;
        final ImageView imageView = new ImageView(context);



        int padding = context.getResources().getDimensionPixelSize(
            R.dimen.padding_medium);
        imageView.setPadding(padding, padding, padding, padding);
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        imageView.setImageResource(mImages[position]);
        ((ViewPager) container).addView(imageView, 0);


        return imageView;

}
        public void slideToRight(View view){

        TranslateAnimation animate = new TranslateAnimation(0,view.getWidth(),0,0);

        animate.setDuration(3000);
        animate.setFillAfter(true);
        view.startAnimation(animate);
        view.setVisibility(View.GONE);
    }
    // To animate view slide out from right to left
    public void slideToLeft(View view){
        TranslateAnimation animate = new TranslateAnimation(0,-view.getWidth(),0,0);
        animate.setDuration(3000);
        animate.setFillAfter(true);
        view.startAnimation(animate);
        view.setVisibility(View.GONE);

        animate.setAnimationListener(new AnimationListener() {

                @Override
                public void onAnimationStart(Animation animation) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onAnimationRepeat(Animation animation) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onAnimationEnd(Animation animation) {




                }
            });
}
    }   
    @Override
public boolean     onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
@Override  
public boolean onOptionsItemSelected(MenuItem item) {  

    switch(item.getItemId())  {  
        case R.id.item:  
            Toast.makeText(getApplicationContext(), "here i want to change the viewpager all images", Toast.LENGTH_SHORT).show();


    }return false;
}}

【问题讨论】:

  • 我没有阅读你的整个代码,但是从你之前提出的问题来看,我建议你使用List<int>而不是静态数组。

标签: android android-viewpager


【解决方案1】:

只需更改您的数据集并重新制作适配器。

@Override  
public boolean onOptionsItemSelected(MenuItem item) {  

switch(item.getItemId())  {  
    case R.id.item: 
       mImages = new int[]{R.drawable.pict7,R.drawable.pict8, R.drawable.pict9};
       ImagePagerAdapter   adapter = new ImagePagerAdapter();
       viewPager.setAdapter(adapter);
    break;
}
return false;
}

【讨论】:

    猜你喜欢
    • 2016-02-20
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多