# LoginDemo **Repository Path**: uygurjan2008_admin/LoginDemo ## Basic Information - **Project Name**: LoginDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-09-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Android登录界面设计 这是之前项目的一个界面,现在抽出来給大家看看。 ##界面: ![1](http://i.imgur.com/ZwDUWBM.png) ##功能: ###(1)基本的判断,输入的是否为空 这里没有判断网络情况,实际项目中是必须要判断的 ###(2)核心知识:sharePreference的使用 本地保存数据,用户名和密码,还有下面复选框的状态都要保存。 这里我自己封装了一个工具栏。 ###(3)密码可见和不可见 默认密码不可见,单击图标后可见,再次点击后不可见。 点击右边的图标时,对EditText设置代码即可: ``` if (iv_see_password.isSelected()) { iv_see_password.setSelected(false); //密码不可见 et_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); } else { iv_see_password.setSelected(true); //密码可见 et_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); } ``` ###(4)登录后会显示链接服务器的对话框 这里有一个自定义的对话框,也是可以自己修改对话框的样式和显示的文字 ###(5)这里密码保存到本地经过了base64的加密 这里创建了一个加密工具类,base64加密过的字符串,会很容易就被解密出来。 但是我方向一个字符串可以加密N次,解密也是要N次,就可以得到原来的字符串。 所以我在工具类里面设置了N的数值,别人就很难知道我的base64怎么解密了! 值得注意的是:多次解密过程有可能会給字符串添加空格,所有每次要对字符串去空格! 加密解密的次数太大,也是要耗时间的,不建议N的数值大于20. ##动态效果: ![2](http://i.imgur.com/WgtPUBz.gif) 如果勾选了自动登录,下次进入登录界面,会自动请求服务器登录。如下图所示: ![3](http://i.imgur.com/4KZBIZy.gif) 这里分享一下主要的代码: ##登录页面的xml布局代码: ```