【问题标题】:Android: ImageSwitcher安卓:图像切换器
【发布时间】:2011-06-20 19:42:01
【问题描述】:

我有一个 ImageSwitcher 和 2 个按钮...“下一个”和“上一个”来滑动图像...但是它仅在一侧从左到右为我的滑动设置动画...如何解决这个问题?谢谢...

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

【问题讨论】:

    标签: android


    【解决方案1】:

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

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

    【讨论】:

    • 那行不通...我还需要两个动画...slide_out_right...和slide_in_left...但是android没有它(((
    • 请参阅stackoverflow.com/questions/1274657/… 以获取指向 out_right 和 in_left 的链接。只需为它们创建自己的 xml 资源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    相关资源
    最近更新 更多