安卓:ImageSwitcher [英] Android: ImageSwitcher

查看:176
本文介绍了安卓:ImageSwitcher的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个ImageSwitcher和2个按钮......下一步和previous滑动图片...但它的动画我滑只能在一个从左边到右边......如何解决?谢谢...

 整数[] imageIDs = {R.drawable.image_one,R.drawable.image_two,
        R.drawable.image_tree};

私人ImageSwitcher imageSwitcher;
私人按钮Next按钮;
私人按钮previousButton;


@覆盖
公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.main);

    在= AnimationUtils.loadAnimation最后的动画(这一点,
            android.R.anim.slide_in_left);
    最终的动画了= AnimationUtils.loadAnimation(这一点,
            android.R.anim.slide_out_right);

    imageSwitcher =(ImageSwitcher)findViewById(R.id.switcher1);
    imageSwitcher.setFactory(本);
    imageSwitcher.setInAnimation(在);
    imageSwitcher.setOutAnimation(出);
    imageSwitcher.setImageResource(imageIDs [0]);

    Next按钮=(按钮)findViewById(R.id.next);
    nextButton.setOnClickListener(新OnClickListener(){

        公共无效的onClick(视图v){
            imageSwitcher.setImageResource(imageIDs [1]);

        }
    });

    previousButton =(按钮)findViewById(R.id. previous);
    previousButton.setOnClickListener(新OnClickListener(){

        公共无效的onClick(视图v){

            imageSwitcher.setImageResource(imageIDs [0]);
        }
    });

}

公共查看makeView(){
    ImageView的ImageView的=新ImageView的(这一点);
    imageView.setBackgroundColor(0xFF000000);
    imageView.setScaleType(ImageView.ScaleType.CENTER);
    imageView.setLayoutParams(新ImageSwitcher.LayoutParams(
            LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
    返回ImageView的;
}
 

解决方案

改变输入/输出动画的onClickListeners。 试试这个:(不检查语法等)

  @覆盖公共无效的onCreate(包savedInstanceState){
 super.onCreate(savedInstanceState);
 的setContentView(R.layout.main);



 imageSwitcher.setImageResource(imageIDs [0]);
 Next按钮=(按钮)findViewById(R.id.next);
 nextButton.setOnClickListener(新OnClickListener(){
   公共无效的onClick(视图v){
 动画OUT = AnimationUtils.loadAnimation(这一点,android.R.anim.slide_out_right);
 动画= AnimationUtils.loadAnimation(这一点,android.R.anim.slide_in_left);
 imageSwitcher =(ImageSwitcher)findViewById(R.id.switcher1);
 imageSwitcher.setFactory(本);
 imageSwitcher.setInAnimation(在);
 imageSwitcher.setOutAnimation(出);
    imageSwitcher.setImageResource(imageIDs [1]);
     }
 });
  previousButton =(按钮)findViewById(R.id. previous); previousButton.setOnClickListener(新OnClickListener(){
         公共无效的onClick(视图v){
 动画OUT = AnimationUtils.loadAnimation(这一点,android.R.anim.slide_out_left);
 动画= AnimationUtils.loadAnimation(这一点,android.R.anim.slide_in_right);
 imageSwitcher.setFactory(本);
 imageSwitcher.setInAnimation(在);
 imageSwitcher.setOutAnimation(出);
           imageSwitcher.setImageResource(imageIDs [0]);
    }
  });
 }

 公共查看makeView(){
  ImageView的ImageView的=新ImageView的(这一点);
  imageView.setBackgroundColor(0xFF000000);
  imageView.setScaleType(ImageView.ScaleType.CENTER);
   imageView.setLayoutParams(新ImageSwitcher.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
    返回ImageView的; }
 

I have a ImageSwitcher and 2 buttons..."Next" and "Previous" to slide images...But its animate my sliding only in one side from left to the right...How to fix that ? thanks...

Integer[] imageIDs = { R.drawable.image_one, R.drawable.image_two,
        R.drawable.image_tree };

private ImageSwitcher imageSwitcher;
private Button nextButton;
private Button previousButton;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    final Animation in = AnimationUtils.loadAnimation(this,
            android.R.anim.slide_in_left);
    final Animation out = AnimationUtils.loadAnimation(this,
            android.R.anim.slide_out_right);

    imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher1);
    imageSwitcher.setFactory(this);
    imageSwitcher.setInAnimation(in);
    imageSwitcher.setOutAnimation(out);
    imageSwitcher.setImageResource(imageIDs[0]);

    nextButton = (Button) findViewById(R.id.next);
    nextButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            imageSwitcher.setImageResource(imageIDs[1]);

        }
    });

    previousButton = (Button) findViewById(R.id.previous);
    previousButton.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {

            imageSwitcher.setImageResource(imageIDs[0]);
        }
    });

}

public View makeView() {
    ImageView imageView = new ImageView(this);
    imageView.setBackgroundColor(0xFF000000);
    imageView.setScaleType(ImageView.ScaleType.CENTER);
    imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    return imageView;
}

解决方案

change the in/out animation in the onClickListeners. try this: (not checked for syntax etc...)

@Override public void onCreate(Bundle savedInstanceState) {    
 super.onCreate(savedInstanceState);    
 setContentView(R.layout.main);    



 imageSwitcher.setImageResource(imageIDs[0]);     
 nextButton = (Button) findViewById(R.id.next);    
 nextButton.setOnClickListener(new OnClickListener() {       
   public void onClick(View v) {  
 Animation out= AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);     
 Animation in= AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);   
 imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher1);    
 imageSwitcher.setFactory(this); 
 imageSwitcher.setInAnimation(in);    
 imageSwitcher.setOutAnimation(out);        
    imageSwitcher.setImageResource(imageIDs[1]);     
     }    
 });    
  previousButton = (Button) findViewById(R.id.previous);     previousButton.setOnClickListener(new OnClickListener() { 
         public void onClick(View v) {  
 Animation out= AnimationUtils.loadAnimation(this, android.R.anim.slide_out_left);     
 Animation in= AnimationUtils.loadAnimation(this, android.R.anim.slide_in_right);   
 imageSwitcher.setFactory(this); 
 imageSwitcher.setInAnimation(in);    
 imageSwitcher.setOutAnimation(out);  
           imageSwitcher.setImageResource(imageIDs[0]);     
    }   
  }); 
 } 

 public View makeView() {   
  ImageView imageView = new ImageView(this);   
  imageView.setBackgroundColor(0xFF000000);   
  imageView.setScaleType(ImageView.ScaleType.CENTER);  
   imageView.setLayoutParams(new ImageSwitcher.LayoutParams(             LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
    return imageView; } 

这篇关于安卓:ImageSwitcher的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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