我试图在点击按钮时切换图像..但我失败并得到了错误 这是我的代码....请有人帮助我!! 如果需要,请添加XML代码也请发布相同的
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;
}
}
答案 0 :(得分:1)
您的问题是,当您在this
中引用OnClickListener
时,您指的是该特定的聆听者,而不是您当前的活动。你应该把它改成
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);
并使用android.R.anim.slide_in_left
和android.R.anim.slide_out_right
而不是slide_out_left和“slide_in_right”,因为这些不存在。
ImageSlider