android 实现划屏效果控件有:ViewFlipper,用过的同学们都知道,这个控件有点死板,只能等待你手势执行完毕后才执行滑动效果,用起来很不爽,不过ViewPager可以很容易实现这个效果.但是有个缺陷,也就是在首页时候向左拽,在最后一页向右拽,这两者是没有效果的,而iphone的效果是你拖拽出现一片空的page会自动缩回首页或尾页,这个看起来很爽,不过android强大之处你可以自己实现,我是菜鸟,说的都是个人观点,获取有很多很多的bug吧,若有不足之处请您多多指出,我将感激不尽.
首先要实现ViewPager效果,必须要导入一个jar包“android-support-v4.jar”这个jar包可以在android sdk中找到路径为”E:\android-sdk-windows\extras\android\support\v4“
关于细节上的问题,自己可以网上搜搜.在这里我要讲两点”怎么实现禁止滑向下一页“
其实实现方法很简单,一说你也就知道了.”多创建两个屏,用于放在第一屏和最后一屏“嘿嘿,知道了吧,我其实也没做什么,就是稍微修改了一下,具体代码如下:
主要是这个回调OnPageChangeListener接口,当页数改变回调用,也就是当你左右滑动的时候会执行,还有一个重要的方法:pager.setCurrentItem(arg0 - 1);你要显示哪一页的时候也会调用调用.
/***
* init page
*/
void InitPages()
{
pageViews = new ArrayList<View>();
View view00 = getLocalActivityManager().startActivity("NullActivity",new Intent(this, NullActivity.class)).getDecorView();
View view01 = getLocalActivityManager().startActivity("MainActivity1",new Intent(this, MainActivity1.class)).getDecorView();
View view02 = getLocalActivityManager().startActivity("MainActivity2",new Intent(this, MainActivity2.class)).getDecorView();
View view03 = getLocalActivityManager().startActivity("MainActivity3",new Intent(this, MainActivity3.class)).getDecorView();
View view04 = getLocalActivityManager().startActivity("NullActivity",new Intent(this, NullActivity.class)).getDecorView();
pageViews.add(view00);
pageViews.add(view01);
pageViews.add(view02);
pageViews.add(view03);
pageViews.add(view04);
}
/***
* 根据页数初始化分页点
*/
void Init_Point() {
imageViews = new ArrayList<ImageView>();
ImageView imageView;
for (int i = 0; i < pageViews.size(); i++) {
imageView = new ImageView(this);
imageView.setLayoutParams(new LayoutParams(5, 5));
imageView.setBackgroundResource(R.drawable.d1);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
layoutParams.leftMargin = 20;
layoutParams.rightMargin = 20;
layout2.addView(imageView, layoutParams);
//这里要隐藏两个分页点,
if (i == 0 || i == pageViews.size() - 1) {
imageView.setVisibility(View.GONE);
}
if (i == 1) {
imageView.setBackgroundResource(R.drawable.d2);//默认第二个要列为选中状态
}
imageViews.add(imageView);
}
}
/**
* 对分页点描绘
* @param index 页码
*/
public void draw_Point(int index) {
for (int i = 1; i < imageViews.size(); i++) {
if (index == i) {
imageViews.get(i).setBackgroundResource(R.drawable.d2);
} else
imageViews.get(i).setBackgroundResource(R.drawable.d1);
}
}
效果如下:
page 1 page2 page3
划屏后回归 page 1 划屏后回归 page 2
就展示到这里了,本人是初学着,如有不足之处请您留言指出,我期待与您共同进步.