image switching on button click
I have tries to switch the images on button click..but i failed and got the errors Here is my code....please somebody help me!! please add XML code if required also please post the same also
package com.conn;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ViewSwitcher.ViewFactory;
public class image_slider extends Activity
{
Integer[] imageIDs = { R.drawable.haha, R.drawable.dte,R.drawable.new_login };
private ImageSwitcher imageSwitcher;
private Button nextButton;
private Button 开发者_开发技巧previousButton;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.imgslide);
imageSwitcher.setImageResource(imageIDs[0]);
nextButton = (Button) findViewById(R.id.next);
nextButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
final Animation out= AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
final 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]);
// imageSwitcher.setImageResource(imageIDs[1]);
}
});
previousButton = (Button) findViewById(R.id.previous);
previousButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
final Animation out= AnimationUtils.loadAnimation(this, android.R.anim.slide_out_left);
final 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;
}
}
Your problem is that when you refer to this
in your OnClickListener
your are referring to that particular listener and not to your current Activity. You should change it to
final Animation out= AnimationUtils.loadAnimation(image_slider.this, android.R.anim.slide_out_right);
final Animation in= AnimationUtils.loadAnimation(image_slider.this, android.R.anim.slide_in_left);
...
imageSwitcher.setFactory(image_slider.this);
And use android.R.anim.slide_in_left
and android.R.anim.slide_out_right
not slide_out_left and "slide_in_right" because these don't exist.
BTW, good Java practice is to start your class name with a capital letter, e.g. ImageSlider
精彩评论