ImageSwitcher 和TextView
ImageSwitcher
- ImageSwitcher是Android中控制图片展示的一个控件,如幻灯片效果
- ImageSwitcher粗略的理解就是ImageView选择器
- ImageSwitcher的原理:ImageSwitcher有两个子View:ImageView,当左右滑动时,就在这两个图片之间来回切换图片。
- 既然有两个子IamgeView,那么我们要创建两个ImageView给ImageSwitcher。出啊关键ImageSwitcher是通过工厂类来实现的:ViewFactory。
public class MainActivity extends AppCompatActivity implements ViewSwitcher.ViewFactory,View.OnTouchListener{
private ImageSwitcher imageSwitcher;
private int[] images = {R.mipmap.l,
R.mipmap.h
};
private int index = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher);
//需要传入特们的对象,就是自己本身
imageSwitcher.setFactory(this);
imageSwitcher.setOnTouchListener(this);
}
//初始化列表
@Override
public View makeView() {
ImageView iv = new ImageView(this);
iv.setImageResource(images[0]);
return iv;
}
float startX = 0.0f;
float endX = 0.0f;
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if(action == MotionEvent.ACTION_DOWN){
startX = event.getX();
}
if(action == MotionEvent.ACTION_UP){
endX = event.getX();
}
//往右移
if(startX - endX>15){ //显示下一张
index = index+ 1 < images.length?++index:0;
}else if(endX - startX > 15){ //显示上一张
index = index - 1 >=0 ? --index:images.length-1;
}
imageSwitcher.setImageResource(images[index]);
return true;
}
}
图片切换的动画效果
imageSwitcher.setInAnimation(this,R.anim.fada_in);
imageSwitcher.setInAnimation(this,R.anim.fada_out);
TextViewer
同ImageSwitcher一样,TextView是实现文本的切换,里面的内容是文本