• 个人技术博客


    个人技术博客

    由于本人在“人月神教”小组只要负责Android前端UI的工作,所以最近这段时间也一直在学习相关内容,算是有些收获,至少感觉做APP还是一件很有意思的事。

    Java

    很羞愧的说,在做这项作业之前,我只学过C和C++,由于Android开发是基于Java的,所以我花了三天时间看完了慕课网的Java相关基础教程,总结出来Java其实和C++非常类似,都是偏于面向对象的语言,强调类与方法,继承多态接口等概念比较重要。由于时间有限并没有深入学习Java,只是大致了解了一下Java的基本语法格式,主要做到能看得懂,不拖以后Android开发的后腿。

    Android

    鄙人写安卓用的开发工具是Android Studio,之所以用Android Studio,是因为觉得eclipse+ADT比较老了,谷歌已经在慢慢淡化对eclipse的支持,甚至下架了ADT的下载链接,而Android Studio毕竟是谷歌亲生IDE,之后也会成为Android开发的主流IDE。其实就是觉得Android Studio更高大上。而且是团队大佬们定的规矩。给大佬递茶。
    下面说一些我在做UI时遇到的一些问题:

    用SharedPreferences实现首次登录显示引导界面

    很多优秀的软件都有引导界面,来引导用户更好地使用APP,于是我感觉初次登陆的引导界面十分的关键。最开始做的时候非常头疼,因为什么都不会,一直想着如何判断是否是第一次登陆,终于查阅了多方教程找到了用SharedPreferences实现首次登录显示引导界面的方法。
    SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数,如储存用户密码等信息的时候就可以用到,当然也可以用来记录是否是首次登录。
    首先,新建一个SharedPreference类,用来返回或者修改保存在本地的记录信息,我这里的记录信息是isLogin,即是否初次登陆,下面是代码:

    public class SharePreference {
    
            Context context;
            public SharePreference(Context context)
            {
                this.context = context;
            }
            /****设置状态  false为安装后第一次登录,true为已经登录过****/
            public void setState()
            {
                SharedPreferences sp = context.getSharedPreferences("save", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = sp.edit();
                editor.putBoolean("isLogin", true);
                editor.commit();
            }
            /***获取状态***/
            public boolean getState()
            {
                SharedPreferences sp = context.getSharedPreferences("save", Context.MODE_PRIVATE);
                boolean b = sp.getBoolean("isLogin", false);
                return b;
            }
    
    }
    

    接着,就可以在相应要调用读取SharedPreferences信息的地方使用了,比如我的是欢迎页点击按键根据是否首次登录跳到不同的页面,代码如下:

    button1.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    SharePreference sp=new SharePreference(FirstActivity.this);
                    boolean isLogin = sp.getState();
                    if(isLogin){
                        Intent intent=new Intent(FirstActivity.this,MainActivity.class);
                        startActivity(intent);
                    }
                    else {
                        sp.setState();  //将登陆状态设置为true;
                        Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
                        startActivity(intent);
                    }
                }
            });
    

    用此种方法还可以实现记住密码等保存简单用户数据的功能。

    给checkbox更换选中框样式(PS:自带的太丑)

    • 首先肯定要先找两张令自己满意的选中框样式图,一张是选中的,一张是没选中的,命名select和noselect,调整到合适的分辨率(这很重要,不然最后选中框会变得和文字不协调,我一般文字大小50sp的话,选中框样式大概调成35*35分辨率大小的,调整分辨率的话,建议用PS),然后把它们放入drawable文件夹中(Android的图片素材统一放在这个文件夹里)
    • 接着右键res\drawable,新建drawable resourse file,然后在里面添加
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:state_checked="true"
            android:drawable="@drawable/select"
            />
        <item
            android:state_checked="false"
            android:drawable="@drawable/noselect"
            />
    </selector>
    
    • 在values文件夹下面的style.xml文件里增添如下代码,style name的名字可以随便取,但是item name须为: android:button(会有代码提示),引用你定义的选择器(有代码提示 Android Studio 代码提示快捷键为 "Ctrl+Alt+空格")
    <style name="check_box">
            <item name="android:button">
                @drawable/checkbox
            </item>
        </style>
    
    • 在layout文件夹下的对应的xml引用你所定义的style,即在checkbox属性中添加
    style="@style/你的style name
    

    完成,选的图片如果好看的话,那不知道比自带的高到哪里去

    Android Studio界面隐藏标题栏

    • APP运行时如果需要临时隐藏状态栏,只需要在该动作前加入

    getSupportActionBar().hide();
    

    即可,不过只有运行的时候才能看到标题栏被隐藏了,在IDE里编辑的时候还是会有标题栏

    • 无论何时都隐藏状态栏

    网上找的教程多是eclipse版的,不适用于Android Studio。原因是Android Studio的Activity类继承的是AppCompatActivity,这个是属于support v7附加包的类。而eclipse使用的则是v4包,继承的是Activity类。所以两者的方法不通用,这里介绍下Android Studio隐藏状态栏的方式:

    • 修改AndroidMainfest.xml中的 theme为
     android:theme="@style/AppTheme"
    

    即默认设置

    • 在values\style.xml中把
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    

    改为

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
    

    待续....

  • 相关阅读:
    财务自由之路--笔记
    Spring Cloud微服务笔记(一)微服务与云概念
    Java8新特性----Stream
    Docker操作笔记(四)使用网络
    Docker操作笔记(三)数据管理
    Docker操作笔记(二)容器
    Docker操作笔记(一)使用镜像
    信息化领域热词分类分析及解释
    假期第二周总结
    假期第一周总结
  • 原文地址:https://www.cnblogs.com/n9705/p/7812172.html
Copyright © 2020-2023  润新知