zoukankan      html  css  js  c++  java
  • 新闻客户端之欢迎界面和新手引导界面

     

     

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

     

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

     

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

     

    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("" + 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();
        }
  • 相关阅读:
    cron表达式
    特殊二叉树和平衡二叉树和树的遍历
    进阶之常见算法和算法题
    原码,反码,补码、移码
    PostgreSQL 大小写问题 一键修改表名、字段名为小写
    ImportError: cannot import name 'PackageFinder' from 'pip._internal.index'
    安装pl/sql developer(内附下载地址)
    oracle plsql的结构
    oracle数据库基本操作
    java的高并发IO原理,阻塞BIO同步非阻塞NIO,异步非阻塞AIO
  • 原文地址:https://www.cnblogs.com/AceIsSunshineRain/p/5184511.html
Copyright © 2011-2022 走看看