android studio 字号的登录界面的100字总结

立志做一名优秀的软件工程师,在技术上追求一专多能,在思想上追求与时具进。...
Android Studio 表格布局实现登录界面
在xml文件中添加如下代码:
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:gravity="center"
android:id="@+id/tableRow1"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"&
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:"
android:textSize="30px"
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="200px"
android:textSize="30px"
android:id="@+id/tableRow2"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"&
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密
android:textSize="30px"
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="200px"
android:textSize="30px"
android:inputType="textPassword"
android:id="@+id/tableRow3"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"&
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登 录"
android:textSize="30px"
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注 册"
android:textSize="30px"
1、gravity : 用于设置View中内容相对于View组件的对齐方式。其可选值有:top、bottom、left、right、fill_vertical、center_horizontal、center、fill、clip_vertical、clip_horizontal。这些值也可以同时指定,各属性值用竖线隔开。例如靠右下角对其:right|bottom。
没有更多推荐了,如何使用Android Studio开发用户登录界面_百度知道
如何使用Android Studio开发用户登录界面
我有更好的答案
如何使用Android Studio开发用户登录界面,具体解决方案如下:解决方案1:  &:text=&。/quit&  TextView /密 码,Module相当于新建了一个项目:android=&。  选择Android Application  您好:layout_marginTop=&&    android,Android Studio有一个很强大的预览功能,相当给力  我们将activity_&fill_parent&TextView /:layout_height=&:layout_height=&Module。com/  &,点击next  将My Module 和app改成自己项目相应的名字.xml(比如)的代码替换成如下代码,在这个文件里我们将完成登录界面的编写  这是初始的主界面;  220px&.xml文件:&apk/    /20px&TextView /  &。android:id=&:layout_height=&,同时选择支持的Android版本  这一步我们选择Blank A  &wrap_content&220px&  &TableRow&/:layout_width=&,自己手动编写登录界面:minWidth=&&&  &  &/,读者可自行百度环境配置相关内容;  &/,一直点击/:layout_width=&&:textSize=&wrap_content&  android,最后点击finish就完成了项目的创建  在project下我们可以看到出现了我们刚才创建的login项目  展开res/wrap_content&    TextView  android:layout_height=&&:id=&  &:id=&Button    android,点击打开activity_  TextView /,而不依赖系统内置的Login A  android,还没有经过我们编写的界面;Button  &:layout_height=&:layout_width=&:layout_width=&wrap_content&  wrap_content&TableRow&TableRTableLayout xmlns:layout_width=&  &@+id/TableR/24px&&@+id/,本文不再赘述:inputType=&  &0;  /pwd&  &  &  android,3&res/:gravity=&:layout_marginTop=&:text=&android&  &&TextView /wrap_content&:textSize=&  &TableRow&:layout_width=&fill_parent&:text=&EditText  android:text=&  wrap_content&center_vertical&:stretchColumns=&  login&TableRow&&  TextView /  &  &  TextView  android:layout_height=&,很高兴能帮助您  我们项目的前提是你已经将基本的运行环境及sdk都已经安装好了;退出&  &&EditText  android:  &:layout_width=&:layout_height=&  @+id/  &  android:textSize=&&TableLayout&  textPassword&/24px&账 号;登录&  /。右键点击new--&:minWidth=&:id=&@+id/wrap_content&20px&  使用Android 手机进行测试;wrap_content&wrap_content&wrap_content&24px&wrap_content&&account&/  /  &  &:&  android
采纳率:97%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。脚下荆棘,抬头阳光,记得微笑。
登录界面(Android studio)
&?xml version="1.0" encoding="utf-8"?&
&RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
&ScrollView
android:id="@+id/sv"
android:layout_width="match_parent"
android:layout_height="match_parent"
&RelativeLayout
android:id="@+id/login_view"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_width="match_parent"&
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="登录"
android:id="@+id/login_btn_login"
android:onClick="finish_login"
android:background="#545bcb"
android:textSize="20dp"
android:textColor="#ffffff"
android:layout_below="@+id/login_edit_pwd"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="52dp" /&
android:layout_width="400dp"
android:layout_height="60dp"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/login_edit_pwd"
android:drawableLeft="@android:drawable/ic_lock_idle_lock"
android:hint="请输入您的密码"
android:layout_below="@+id/login_edit_account"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" /&
android:layout_width="100dp"
android:layout_height="20dp"
android:text="记住密码"
android:id="@+id/Login_Remember"
android:checked="false"
android:textSize="15dp"
android:layout_below="@+id/login_edit_pwd"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" /&
android:layout_width="400dp"
android:layout_height="60dp"
android:inputType="textPersonName"
android:id="@+id/login_edit_account"
android:drawableLeft="@android:drawable/ic_menu_myplaces"
android:hint="请输入您的用户名"
android:layout_marginTop="20dp"
android:layout_below="@+id/logo"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" /&
&ImageView
android:id="@+id/logo"
android:layout_alignWithParentIfMissing="false"
android:background="@android:color/white"
app:srcCompat="@mipmap/logo"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_marginTop="21dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" /&
&/RelativeLayout&
&/ScrollView&
&/RelativeLayout&
没有更多推荐了,AndroidStudio制作登录和注册功能的实现,界面的布局介绍
Studio制作登录和注册功能的实现,界面的布局介绍。
当我们面临制作登录和注册功能的实现时,我们需要先设计登录界面的布局和注册界面的布局,做到有完整的思路时才开始实现其功能效果会更好。
我们需要做个标题栏,登陆界面,实现登陆界面的功能代码块,注册界面,实现测试界面的功能模块即可完成。
标题栏的设计思路
每个APP都基本上有个标题栏,即是显示标题,标题栏的两侧大多数都有一个返回建。那么标题栏即是一个返回键和一个标题栏的制作布局。
为了避免大多数代码的冗杂,我们把这个标题栏的制作布局独立起来,标题的显示我们可以在每块主题模块上,用setText()方法来显示不同的标题。
接下来我们创建main_title_bar.xml布局文件:
具体代码如下:
现在标题栏布局做好了,我们需要了解怎么换图片,就是在android:background=&@drawable/go_back_selector&,其实就是在drawable中创建这个go_back_selector.xml文件而已,用到了android:state_pressed=&true&这个属性,当点击时就是变化的图片效果,记住state_pressed就OK。
登录界面布局
创建登录界面,我们需要标题栏显示&登录&,那么就要通过标签。
我们需要设计想好美化登录界面,需要以下图片:登录背景图片login_bg.png,默认的头像图片default_icon,输入用户名的背景图片login_user_name_bg,在用户名前需要一个小标图user_name_icon,同理,输入密码框需要图片有login_psw_bg,psw_icon,按钮需要图片加以美观register_selector,根据需要的图片可自行制作。
登录界面布局模块代码
创建activity_login.xml布局文件,具体代码如下:
同理注册界面布局设计思路
创建注册界面,我们需要标题栏显示&注册&,那么就要通过标签。那么我做了效果图,提供思路参考:
注册界面思路图
注册布局模块代码
创建activity_register.xml布局文件,具体代码如下:
MD5 为 Message-Digest Algorithm 5(信息--摘要算法),记住几个要点就可以了。
MessageDigest
MessageDigest.getInstance( );
由于注册登录涉及密码,我们需要对用户的密码进行 MD5 算法,MD5 算法是把任意长度的字符串变成固定长度(通常是128位)的16进制字符串,且此算法不可逆。
具体代码如下:
package cn.edu.gdmec.android.androidstudiodemo.
import java.security.MessageD
import java.security.NoSuchAlgorithmE
public class MD5Utils {
//md5 加密算法
public static String md5(String text) {
MessageDigest digest =
digest = MessageDigest.getInstance(&md5&);
// 数组 byte[] result -& digest.digest( );
文本 text.getBytes();
byte[] result = digest.digest(text.getBytes());
//创建StringBuilder对象 然后建议StringBuffer,安全性高
//StringBuilder sb = new StringBuilder();
StringBuffer sb = new StringBuffer();
// result数组,digest.digest ( ); -& text.getBytes();
// for 循环数组byte[]
for (byte b : result){
// 0xff 为16进制
int number = b & 0
// number值 转换 字符串 Integer.toHexString( );
String hex = Integer.toHexString(number);
if (hex.length() == 1){
sb.append(&0&+hex);
sb.append(hex);
//sb StringBuffer sb = new StringBuffer();对象实例化
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
//发送异常return空字符串
return &&;
实现注册逻辑功能代码
完成注册页面的布局与 MD5 工具类后,进行注册界面的逻辑编写。
当在注册界面点击注册按钮后,需要获取用户名,用户密码和再次确认密码,当两次密码相同时,将用户名和密码(经过 MD5 加密)保存到 SharedPreferences 中,同时当注册成功后,需要将用户名传递到登录界面中。
RegisterActivity.java具体代码如下:
package cn.edu.gdmec.android.
import android.content.I
import android.content.SharedP
import android.content.pm.ActivityI
import android.graphics.C
import android.os.B
import android.support.v7.app.AppCompatA
import android.text.TextU
import android.view.V
import android.widget.B
import android.widget.EditT
import android.widget.RelativeL
import android.widget.TextV
import android.widget.T
import cn.edu.gdmec.android.androidstudiodemo.utils.MD5U
public class RegisterActivity extends AppCompatActivity {
private TextView tv_main_//标题
private TextView tv_//返回按钮
private Button btn_//注册按钮
//用户名,密码,再次输入的密码的控件
private EditText et_user_name,et_psw,et_psw_
//用户名,密码,再次输入的密码的控件的获取值
private String userName,psw,pswA
//标题布局
private RelativeLayout rl_title_
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置页面布局 ,注册界面
setContentView(R.layout.activity_register);
//设置此界面为竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
private void init() {
//从main_title_bar.xml 页面布局中获取对应的UI控件
tv_main_title=findViewById(R.id.tv_main_title);
tv_main_title.setText(&注册&);
tv_back=findViewById(R.id.tv_back);
//布局根元素
rl_title_bar=findViewById(R.id.title_bar);
rl_title_bar.setBackgroundColor(Color.TRANSPARENT);
//从activity_register.xml 页面中获取对应的UI控件
btn_register=findViewById(R.id.btn_register);
et_user_name=findViewById(R.id.et_user_name);
et_psw=findViewById(R.id.et_psw);
et_psw_again=findViewById(R.id.et_psw_again);
tv_back.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
RegisterActivity.this.finish();
//注册按钮
btn_register.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//获取输入在相应控件中的字符串
getEditString();
//判断输入框内容
if(TextUtils.isEmpty(userName)){
Toast.makeText(RegisterActivity.this, &请输入用户名&, Toast.LENGTH_SHORT).show();
}else if(TextUtils.isEmpty(psw)){
Toast.makeText(RegisterActivity.this, &请输入密码&, Toast.LENGTH_SHORT).show();
}else if(TextUtils.isEmpty(pswAgain)){
Toast.makeText(RegisterActivity.this, &请再次输入密码&, Toast.LENGTH_SHORT).show();
}else if(!psw.equals(pswAgain)){
Toast.makeText(RegisterActivity.this, &输入两次的密码不一样&, Toast.LENGTH_SHORT).show();
*从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名
}else if(isExistUserName(userName)){
Toast.makeText(RegisterActivity.this, &此账户名已经存在&, Toast.LENGTH_SHORT).show();
Toast.makeText(RegisterActivity.this, &注册成功&, Toast.LENGTH_SHORT).show();
//把账号、密码和账号标识保存到sp里面
* 保存账号和密码到SharedPreferences中
saveRegisterInfo(userName, psw);
//注册成功后把账号传递到LoginActivity.java中
// 返回值到loginActivity显示
Intent data = new Intent();
data.putExtra(&userName&, userName);
setResult(RESULT_OK, data);
//RESULT_OK为Activity常量,状态码为-1,
// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值
RegisterActivity.this.finish();
* 获取控件中的字符串
private void getEditString(){
userName=et_user_name.getText().toString().trim();
psw=et_psw.getText().toString().trim();
pswAgain=et_psw_again.getText().toString().trim();
* 从SharedPreferences中读取输入的用户名,判断SharedPreferences中是否有此用户名
private boolean isExistUserName(String userName){
boolean has_userName=
//mode_private SharedPreferences sp = getSharedPreferences( );
// &loginInfo&, MODE_PRIVATE
SharedPreferences sp=getSharedPreferences(&loginInfo&, MODE_PRIVATE);
//获取密码
String spPsw=sp.getString(userName, &&);//传入用户名获取密码
//如果密码不为空则确实保存过这个用户名
if(!TextUtils.isEmpty(spPsw)) {
has_userName=
return has_userN
* 保存账号和密码到SharedPreferences中SharedPreferences
private void saveRegisterInfo(String userName,String psw){
String md5Psw = MD5Utils.md5(psw);//把密码用MD5加密
//loginInfo表示文件名, mode_private SharedPreferences sp = getSharedPreferences( );
SharedPreferences sp=getSharedPreferences(&loginInfo&, MODE_PRIVATE);
//获取编辑器, SharedPreferences.Editor
editor -& sp.edit();
SharedPreferences.Editor editor=sp.edit();
//以用户名为key,密码为value保存在SharedPreferences中
//key,value,如键值对,editor.putString(用户名,密码);
editor.putString(userName, md5Psw);
//提交修改 editor.commit();
editor.commit();
实现登录逻辑功能代码
完成登录界面布局后,来实现登录界面的逻辑代码。
当点击登录按钮时,需判断用户名和密码是否为空。
若为空,则提示请输入用户名或密码,这里的判断事项比较一开始凌乱,需要细细品味;若不为空,则获取用户输入的用户名,由于用的是本地数据,需要根据用户名在 SharedPreferences 中查询是否有对应的密码,若有对应的密码且与用户输入的密码(需通过 MD5 加密)比对一致情况,则登录成功。
LoginActivity.java具体代码如下:
package cn.edu.gdmec.android.
import android.content.I
import android.content.SharedP
import android.content.pm.ActivityI
import android.os.B
import android.support.v7.app.AppCompatA
import android.text.TextU
import android.view.V
import android.widget.B
import android.widget.EditT
import android.widget.TextV
import android.widget.T
import cn.edu.gdmec.android.androidstudiodemo.utils.MD5U
public class LoginActivity extends AppCompatActivity{
private TextView tv_main_//标题
private TextView tv_back,tv_register,tv_find_//返回键,显示的注册,找回密码
private Button btn_//登录按钮
private String userName,psw,spP//获取的用户名,密码,加密密码
private EditText et_user_name,et_//编辑框
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//设置此界面为竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//获取界面控件
private void init() {
//从main_title_bar中获取的id
tv_main_title=findViewById(R.id.tv_main_title);
tv_main_title.setText(&登录&);
tv_back=findViewById(R.id.tv_back);
//从activity_login.xml中获取的
tv_register=findViewById(R.id.tv_register);
tv_find_psw=findViewById(R.id.tv_find_psw);
btn_login=findViewById(R.id.btn_login);
et_user_name=findViewById(R.id.et_user_name);
et_psw=findViewById(R.id.et_psw);
//返回键的点击事件
tv_back.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//登录界面销毁
LoginActivity.this.finish();
//立即注册控件的点击事件
tv_register.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//为了跳转到注册界面,并实现注册功能
Intent intent=new Intent(LoginActivity.this,RegisterActivity.class);
startActivityForResult(intent, 1);
//找回密码控件的点击事件
tv_find_psw.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//跳转到找回密码界面(此页面暂未创建)
//登录按钮的点击事件
btn_login.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//开始登录,获取用户名和密码 getText().toString().trim();
userName=et_user_name.getText().toString().trim();
psw=et_psw.getText().toString().trim();
//对当前用户输入的密码进行MD5加密再进行比对判断, MD5Utils.md5( ); psw 进行加密判断是否一致
String md5Psw= MD5Utils.md5(psw);
// md5P spPsw 为 根据从SharedPreferences中用户名读取密码
// 定义方法 readPsw为了读取用户名,得到密码
spPsw=readPsw(userName);
// TextUtils.isEmpty
if(TextUtils.isEmpty(userName)){
Toast.makeText(LoginActivity.this, &请输入用户名&, Toast.LENGTH_SHORT).show();
}else if(TextUtils.isEmpty(psw)){
Toast.makeText(LoginActivity.this, &请输入密码&, Toast.LENGTH_SHORT).show();
// md5Psw.equals(); 判断,输入的密码加密后,是否与保存在SharedPreferences中一致
}else if(md5Psw.equals(spPsw)){
//一致登录成功
Toast.makeText(LoginActivity.this, &登录成功&, Toast.LENGTH_SHORT).show();
//保存登录状态,在界面保存登录的用户名 定义个方法 saveLoginStatus boolean 状态 , userName 用户名;
saveLoginStatus(true, userName);
//登录成功后关闭此页面进入主页
Intent data=new Intent();
//datad.putExtra( ); name ,
data.putExtra(&isLogin&,true);
//RESULT_OK为Activity系统常量,状态码为-1
// 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值
setResult(RESULT_OK,data);
//销毁登录界面
LoginActivity.this.finish();
//跳转到主界面,登录成功的状态传递到 MainActivity 中
startActivity(new Intent(LoginActivity.this, MainActivity.class));
}else if((spPsw!=null&&!TextUtils.isEmpty(spPsw)&&!md5Psw.equals(spPsw))){
Toast.makeText(LoginActivity.this, &输入的用户名和密码不一致&, Toast.LENGTH_SHORT).show();
Toast.makeText(LoginActivity.this, &此用户名不存在&, Toast.LENGTH_SHORT).show();
*从SharedPreferences中根据用户名读取密码
private String readPsw(String userName){
//getSharedPreferences(&loginInfo&,MODE_PRIVATE);
//&loginInfo&,mode_ MODE_PRIVATE表示可以继续写入
SharedPreferences sp=getSharedPreferences(&loginInfo&, MODE_PRIVATE);
//sp.getString() userName, &&;
return sp.getString(userName , &&);
*保存登录状态和登录用户名到SharedPreferences中
private void saveLoginStatus(boolean status,String userName){
//saveLoginStatus(true, userName);
//loginInfo表示文件名
SharedPreferences sp=getSharedPreferences(&loginInfo&, MODE_PRIVATE);
SharedPreferences sp=getSharedPreferences(&loginInfo&, MODE_PRIVATE);
//获取编辑器
SharedPreferences.Editor editor=sp.edit();
//存入boolean类型的登录状态
editor.putBoolean(&isLogin&, status);
//存入登录状态时的用户名
editor.putString(&loginUserName&, userName);
//提交修改
editor.commit();
* 注册成功的数据返回至此
* @param requestCode 请求码
* @param resultCode 结果码
* @param data 数据
//显示数据, onActivityResult
//startActivityForResult(intent, 1); 从注册界面中获取数据
//int requestCode , int resultCode , Intent data
// LoginActivity -& startActivityForResult -& onActivityResult();
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//super.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
if(data!=null){
//是获取注册界面回传过来的用户名
// getExtra().getString(&***&);
String userName=data.getStringExtra(&userName&);
if(!TextUtils.isEmpty(userName)){
//设置用户名到 et_user_name 控件
et_user_name.setText(userName);
//et_user_name控件的setSelection()方法来设置光标位置
et_user_name.setSelection(userName.length());
如做了效果,需要在清单文件中实现该类,文件的跳转,可以自己了解一下。主要介绍注册模块,登录模块。里面的注解我写的如果有不全的或者错误点,可以联系讨论。
接下来你看到如上代码有点多,那么我们可以进行代码的优化来减少代码量。

我要回帖

更多关于 android studio 字号 的文章

 

随机推荐