android 练习之路 (一)

前言:本来刚忙完不久,和好友定下来3月剩下来几天好好休息休息,四月再找点活干,不过也确实闲不下来,想了想也快实习了,不如再从头做个demo,尽量把所学的知识用上,每天写一部分并且更新到github上,也是挺有意思的一件事,不过想着想着,就觉得那既然要做不如就多做点,顺带也写个博客好了,于是就注册了博客园,开始了自己的写博客之路......

项目的github地址:https://github.com/Qunter/SearchAndCall

------------------------------------------------------------------------

那么来说正题

做一个demo,希望功能能够全面,这样才能把学到的知识都用起来

首先想到的是把以前做的一个demo完善一下,不过觉得当时的fragment也是用的别人的框架,索性干脆就重新做一遍得了,名字嘛也还是叫之前那个,不过github上已经上传过这个名字了,那我就改个英文名上传好了

那么首先从创建工程开始

暂时先分这几个吧,后面有用到再加

那么下一步是先建个BaseActivity

暂时想到要抽出来的首先是三点

*初始化变量

*初始化控件

*设置沉浸式

那就先这样写,后面再添加吧

public abstract class BaseActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initVariables();
        initViews(savedInstanceState);
        initState();
    }
    //初始化变量
    protected abstract void initVariables();
    //初始化控件
    protected abstract void initViews(Bundle savedInstanceState);

    /**
     * 动态的设置状态栏  实现沉浸式状态栏
     *
     */
    private void initState() {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){//4.4 全透明状态栏
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0 全透明实现
            Window window = getWindow();
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            window.setStatusBarColor(Color.TRANSPARENT);//calculateStatusColor(Color.WHITE, (int) alphaValue)
        }
    }
}

然后下一步我觉得暂时先做个登录页面,至于数据库的交互,就集成bmob进去好了

于是建一个activity和一个layout

public class LoginActivity extends BaseActivity {
    @Override
    protected void initVariables() {

    }

    @Override
    protected void initViews(Bundle savedInstanceState) {
        setContentView(R.layout.activity_login);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#666666">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="登录界面"
        android:layout_centerInParent="true"/>
</RelativeLayout>

于是最后的结果是这样

然后,因为时间不早了,所以今天就先到这里吧

posted @ 2017-03-21 19:20  Qunter  阅读(365)  评论(0编辑  收藏  举报