新闻客户端之欢迎界面和新手引导界面

 

 

效果如图 现在开发了欢迎界面和新手引导界面 我没有美工 只有还用我的帅气的草泥马头像了

 

猴年的窗花贴纸也是我扣的..呵呵呵呵呵 求美工妹子照顾给我做几个TAB 

 

祝大家新年快乐! 明天就是大年三十了!

新闻客户端之欢迎界面和新手引导界面_第1张图片

 

github:

https://github.com/AceInAndroid/AnYangNews

 

最近其他不写了 把这个写完再写其他教程 .

 

20160208 updated.

 

=============================================================

 

 写些比较难的地方: 小圆点的位移控制:

1 获得全局视图树对象 

2 设置全局布局监听器

3 在回调方法中计算两个灰点的间距 

    // 页面绘制结束之后, 计算两个圆点的间距 // 视图树
 ivRedPoint.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { // layout方法执行结束(位置确定)
 @Override public void onGlobalLayout() { // 移除监听
 ivRedPoint.getViewTreeObserver() .removeGlobalOnLayoutListener(this); // 获取两个圆点的间距
                        mPointWidth = llContainer.getChildAt(1).getLeft() - llContainer.getChildAt(0).getLeft(); System.out.println("width:" + mPointWidth); } });

4 在Viewpager 的监听器中 ,onPageScrolled方法中 用传入的偏移百分比和位置来计算小红点的左边距 传入布局参数中 来控制

 

mViewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int position) { if (position == mImageIds.length - 1) {// 最后页面显示开始体验
 btnStart.setVisibility(View.VISIBLE); } else { btnStart.setVisibility(View.GONE); } } // 页面滑动过程的回调
 @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { System.out.println("当前位置:" + position + ";偏移百分比:"
                        + positionOffset); // 计算当前小红点的左边距
                int leftMargin = (int) (mPointWidth * positionOffset + position * mPointWidth); // 修改小红点的左边距
                RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ivRedPoint .getLayoutParams(); params.leftMargin = leftMargin; ivRedPoint.setLayoutParams(params); } @Override public void onPageScrollStateChanged(int state) { } }); }

 

 

还有一个知识点 样式选择器和颜色选择器参考我这篇, 其他知识都很简单就不一一描述了

http://www.cnblogs.com/AceIsSunshineRain/p/5185167.html

 

侧边栏采用了slidingmenu 这个库 很简单重点是红色部分.leftmenu里是个帧布局用来充当容器填充fragment 明天再上传最新的代码:

 

public class MainActivity extends SlidingFragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 去掉标题, 必须在setContentView之前执行
 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); // 添加侧边栏 setBehindContentView(R.layout.left_menu); SlidingMenu slidingMenu = getSlidingMenu(); // 全屏触摸 slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); // 屏幕预留200像素 slidingMenu.setBehindOffset(200); initFragment(); }

 

你可能感兴趣的:(新闻客户端之欢迎界面和新手引导界面)