使用viewFlipper来实现屏幕切换动画效果;
为ViewFlipper加入view:
(1)静态导入:在layout布局文件中直接导入;但不灵活;
(2)动态导入:addView()方法;
实现:
(1)实现图片轮播:
第一步:在xml文件中添加viewFlipper控件;在activity中,初始化viewFlipper对象;
第二步:(动态导入的方式为viewFlipper加入子view)将资源id写到int[]的数组里;调用viewFlipper的addView方法,addView(ImageView):可以声明getImageView的方法,实现从资源id转化到imageview;
ImageView getImagweView(int resId)
{
ImageView image = new ImageView(context);
//context --this;
imageBackgroundResouce(resId);
//这种方法可以全屏展示图片,也可以用image.setImageResource(resId);,但这种方法不能将图片全屏展示,只能根据图片的实际的大小来显示;
return image;
}
调用setInAnimation(context,resourceId)来实现进入的动画的效果;resourceId--动画的id;调用setOutAnimation(context,animation)来实现出去的动画效果;setFilpInterval(int time)设置切换的时间;调用startFlipping()来让动画播放;
(2)手势滑动;
第一步:在activity中添加onTouchEvent()的函数,是支持手势滑动的处理;
onTouchEvent(MotionEvent event)
{
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:break;
//表示手指点击到屏幕上;
case MotionEvent.ACTION_MOVE:break;
//表示手指滑动;
case MotionEvent.ACTION_UP:break;
//表示手指离开;
}
}
在MainActivity类中声明一个float startX来记录手指落下的坐标,在case MotionEvent.ACTION_DOWN下调用event的成员函数getX()赋值给startX; case MotionEvent.ACTION_MOVE中要判断是向左滑,还是向右滑,event.getX()-startX>100,表示向右滑,而startX-event.getX()>100,表示向左滑;在根据向右向左滑的情况并通过viewFlipper的setInAnimation(...),setOutAnimation(...)来设置向右向左的动画;向右滑的case中,调用成员showPrevious(),表示翻到前一页;向左滑的case中,调用成员showNext(),表示翻到后一页;
为ViewFlipper加入view:
(1)静态导入:在layout布局文件中直接导入;但不灵活;
(2)动态导入:addView()方法;
实现:
(1)实现图片轮播:
第一步:在xml文件中添加viewFlipper控件;在activity中,初始化viewFlipper对象;
第二步:(动态导入的方式为viewFlipper加入子view)将资源id写到int[]的数组里;调用viewFlipper的addView方法,addView(ImageView):可以声明getImageView的方法,实现从资源id转化到imageview;
ImageView getImagweView(int resId)
{
ImageView image = new ImageView(context);
//context --this;
imageBackgroundResouce(resId);
//这种方法可以全屏展示图片,也可以用image.setImageResource(resId);,但这种方法不能将图片全屏展示,只能根据图片的实际的大小来显示;
return image;
}
调用setInAnimation(context,resourceId)来实现进入的动画的效果;resourceId--动画的id;调用setOutAnimation(context,animation)来实现出去的动画效果;setFilpInterval(int time)设置切换的时间;调用startFlipping()来让动画播放;
(2)手势滑动;
第一步:在activity中添加onTouchEvent()的函数,是支持手势滑动的处理;
onTouchEvent(MotionEvent event)
{
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:break;
//表示手指点击到屏幕上;
case MotionEvent.ACTION_MOVE:break;
//表示手指滑动;
case MotionEvent.ACTION_UP:break;
//表示手指离开;
}
}
在MainActivity类中声明一个float startX来记录手指落下的坐标,在case MotionEvent.ACTION_DOWN下调用event的成员函数getX()赋值给startX; case MotionEvent.ACTION_MOVE中要判断是向左滑,还是向右滑,event.getX()-startX>100,表示向右滑,而startX-event.getX()>100,表示向左滑;在根据向右向左滑的情况并通过viewFlipper的setInAnimation(...),setOutAnimation(...)来设置向右向左的动画;向右滑的case中,调用成员showPrevious(),表示翻到前一页;向左滑的case中,调用成员showNext(),表示翻到后一页;