• 开源中国安卓client源代码学习(一) 渐变启动界面


    开源中国安卓client源代码学习(一) 渐变启动界面


    准备学习安卓开发, 看到网上有人推荐开源中国安卓client的源代码, 说里面包括了大部分技术, 于是准备好好研究研究. 特开通此系列博客来记录学习过程. 因为是在学习, 经验不足, 里面肯定有非常多不正确的地方, 望大家指正.

    这里下载源代码包,开发环境为Linux下Eclipse,导入源代码后有可能会出现android.webkit.CacheManager找不到的错误, 原因是这个类在4.0以上版本号的SDK被删除了, 仅仅要下载4.0版本号的SDK使用就可以. 因为google被墙, 使用SDK管理器可能无法下载, 能够在网上直接下载4.0的SDK, 将目录名字改为android-15, 放到android-sdk的platforms目录下.

    首先是渐变的启动界面.

    从AndroidManifest.xml中定位到程序入口为 /oschina-android-app/src/net/oschina/app/AppStart.java, AppStart为启动类, onCreate方法为入口方法,

    final View view = View.inflate(this, R.layout.start, null); //由layout目录下的start.xml文件定义启动界面视图
    setContentView(view);  // 设置activity显示的视图

    start.xml 文件内容例如以下:

    <?

    xml version="1.0" encoding="utf-8"?

    > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/app_start_view" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="bottom" android:background="@drawable/start_background"> // 渐变使用的图片, 但这里的start_background是个xml文件, 以更精确的控制图片 </LinearLayout>

    start_background.xml内容例如以下

    <?xml version="1.0" encoding="utf-8"?

    > <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/welcome" // 启动图片, welcome.png android:scaleType="fitStart"/> // 缩放类型

    利用AlphaAnimatio类来实现启动界面的渐变效果

        AlphaAnimation aa = new AlphaAnimation(0.3f,1.0f); // 渐变透明度范围
        aa.setDuration(2000); // 持续时间
        view.startAnimation(aa); // 启动渐变    
        aa.setAnimationListener(new AnimationListener()
        // 监听事件, 设置渐变開始, 反复, 结束时的处理
        {
            @Override
            public void onAnimationEnd(Animation arg0) {
                redirectTo();   // 渐变结束后进入到主界面
            }
            @Override
            public void onAnimationRepeat(Animation animation) {}
            @Override
            public void onAnimationStart(Animation animation) {}
    
        });

    以下的redirectTo函数, 其功能就是新开一个activity, 在当中打开主界面, 而且结束当前activity

     private void redirectTo(){        
            Intent intent = new Intent(this, Main.class); // Main 是一个继承了Activity的类
            startActivity(intent); // 在新的activity中打开主界面
            finish(); // 结束当前activity
     }

    这个类中另外两个函数checkgetTime都不重要, 略过.

    tips: 改动启动界面的图片资源后, 要在eclipse的project-clean中清理一下项目缓存, 要不然可能无法即时显示改动后的界面.

  • 相关阅读:
    day25 初始面向对象
    JavaScript中的apply()和call()
    JavaScript中的arguments详解
    测试使用MarkDown在博客园发布博客
    《Spring实战》 1-2
    总结: 《jQuery基础教程》 5-完结
    总结: 《jQuery基础教程》 1-4章
    做个计划
    Nginx与tomcat组合的简单使用
    利用 Dijit 组件框架打造丰富的用户界面
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5192998.html
Copyright © 2020-2023  润新知