2016-10-09 2 views
0

ich viewpager bin mit BilderAndroid viewpager Alle Bilder ändern

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

Ich möchte zeigen alle showen Bilder ändern von ziehbar Ordner, wenn Klick-Taste Benutzer So wie

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

Um

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

Es bedeutet, aktualisieren Sie die Viewpager Bilder auf SchaltflächeklickenDies ist mein Code

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; 
}} 
+0

Ich habe nicht Ihren ganzen Code gelesen, aber aus der Frage, die Sie zuvor gestellt haben, schlage ich vor, Sie verwenden 'List ' anstelle von statischen Array. –

Antwort

0

Sie einfach Ihre Daten ein und wieder Adapter machen ändern.

@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; 
} 
+0

Vielen Dank ... Es funktioniert – user6844063