【发布时间】: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>而不是静态数组。