Android studio 简易登录界面
•参考资料
[1]:视频资源
•效果展示图
•前置知识
- TextView
- EditText
- Button 以及按压效果,点击事件
•出现的问题
输入文本框 $Account$ 和 $Password$ 左侧的图标大小问题;
我是随便在网上下载的两张图片,像素太大,以至于占用了太多的空间,如何修改 EditText 中图标的大小呢?
参考资料:Android TextView设置图标,调整图标大小
首先,我在 $activity\_next.xml$ 中放置了两个 $EditText$ 组件,设置的 $id$ 分别为 $et\_1$ , $et\_2$;
并把以下两张图片放在了 drawable 文件夹中,并分别取名为 $account.png$ , $password.png$;
![]()
$(account.png)$ $(password.png)$
其中,$account.png$ 放置在 $et\_1$ 组件中, $password.png$ 放置在 $et\_2$ 组件中;
在其对应的 $next\_activyti.java$ 文件中设置如下代码即可改变其在 $EditText$ 中的大小;
1 EditText Et1 = findViewById(R.id.et_1);
2 Drawable icon = getResources().getDrawable(R.drawable.account);//找到account.png这张图片
3 icon.setBounds(0,0,44,44);
4 Et1.setCompoundDrawables(icon, null, null, null);
5
6 EditText Et2 = findViewById(R.id.et_2);
7 Drawable password = getResources().getDrawable(R.drawable.password);//找到password.png这张图片
8 password.setBounds(0,0,44,44);
9 Et2.setCompoundDrawables(password,null,null,null);$setBounds(left,top,right,bottom)$ 里的参数从左到右分别是:
- $drawable$ 的左边到 $EditText$ 左边缘 + $padding$ 的距离
- $drawable$ 的上边离 $EditText$ 上边缘 + $padding$ 的距离
- $drawable$ 的右边离 $EditText$ 左边缘 + $padding$ 的距离
- $drawable$ 的下边离 $EditText$ 上边缘 + $padding$ 的距离
相当于以 $EditText$ 边框的左边和上边为参考,通过设置 $drawable$ 的位置来改变其显示的大小;
•点击事件
如上图($gif$)所示,再点击 $Sign in$ 按钮的时候出现了点击事件 $Login failed$;
只需在 $next\_activyti.java$ 添加如下代码即可;
1 Btn1 = findViewById(R.id.btn_1);//btn_1 是 Sign in 按钮的 id
2 Btn1.setOnClickListener(new View.OnClickListener(){//设置点击事件
3
4 public void onClick(View view){
5 Toast.makeText(nextActivity.this,"Login failed",Toast.LENGTH_SHORT).show();
6 }
7 });
•完整代码
1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 tools:context=".nextActivity"
8 android:padding="10dp">
9
10 <TextView
11 android:id="@+id/tv_1"
12 android:layout_width="wrap_content"
13 android:layout_height="wrap_content"
14 android:text="Sign in to Hyacinth"
15 android:textSize="30sp"
16 android:textColor="#9E9191"
17 android:layout_centerHorizontal="true"
18 android:layout_marginTop="20dp"/>
19
20 <EditText
21 android:id="@+id/et_1"
22 android:layout_width="match_parent"
23 android:layout_height="50dp"
24 android:layout_below="@id/tv_1"
25 android:layout_marginTop="60dp"
26 android:textSize="20sp"
27 android:textColor="#FFAD33"
28 android:hint="Account"
29 android:background="@drawable/ic_btn3"
30 android:paddingLeft="15dp"
31 android:drawableLeft="@drawable/account"
32 android:drawablePadding="10dp"
33 />
34
35 <EditText
36 android:id="@+id/et_2"
37 android:layout_width="match_parent"
38 android:layout_height="50dp"
39 android:layout_below="@id/et_1"
40 android:layout_marginTop="10dp"
41 android:textSize="20sp"
42 android:textColor="#FFAD33"
43 android:hint="Password"
44 android:inputType="textPassword"
45 android:background="@drawable/ic_btn3"
46 android:paddingLeft="15dp"
47 android:drawableLeft="@drawable/password"
48 android:drawablePadding="10dp"
49 />
50 <Button
51 android:id="@+id/btn_1"
52 android:layout_width="match_parent"
53 android:layout_height="50dp"
54 android:layout_below="@id/et_2"
55 android:layout_marginTop="40dp"
56 android:background="@drawable/ic_btn_sel"
57 android:text="Sign in"
58 android:textAllCaps="false"
59 />
60
61 </RelativeLayout>activity_next.xml
1 public class nextActivity extends AppCompatActivity {
2
3 private Button Btn1;
4
5 @Override
6 protected void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.activity_next);
9
10 EditText Et1 = findViewById(R.id.et_1);
11 Drawable icon = getResources().getDrawable(R.drawable.account);
12 icon.setBounds(0,0,44,44);
13 Et1.setCompoundDrawables(icon, null, null, null);
14
15 EditText Et2 = findViewById(R.id.et_2);
16 Drawable password = getResources().getDrawable(R.drawable.password);
17 password.setBounds(0,0,44,44);
18 Et2.setCompoundDrawables(password,null,null,null);
19
20 Btn1 = findViewById(R.id.btn_1);
21 Btn1.setOnClickListener(new View.OnClickListener(){
22
23 public void onClick(View view){
24 Toast.makeText(nextActivity.this,"Login failed",Toast.LENGTH_SHORT).show();
25 }
26 });
27 }
28 }nextActivity.java
Android studio 简易登录界面的更多相关文章
- android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】
zhezhelin android studio 新建项目 界面一直停在 [“building ‘ 项目名’ gradle project info”] 安装了android studio 之后,按照 ...
- Java图形界面学习---------简易登录界面
/** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...
- android 案例二 登录界面
效果图: 运行图: 总结: 编写这个简单的用户登录界面,主要用到了以下的知识: java基础中的IO流的操作 用以读取.显示用户的信息 Android布局 线性布局和相对布局 数据的存储选在包 ...
- Android之QQ登录界面
首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得 ...
- android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】
安装了android studio 之后,按照上文所述的那篇博文下载安装gradle,配置环境变量, 启动android studio,新建项目,发现还是新建不了,界面一直停在 ["buil ...
- android studio简易了解第一部分
1.如果还没下载 jdk,先把jdk下载,然后下载android studio 安装 百度 android studio ,百度软件中心可以下载. Android官网可以下载: 网址: htt ...
- android studio简易了解第二部分
1.新建Moudle(eclispe的项目) 其余的和eclipse差不多,一般情况一直next就可以了! 如果选择New Project会重新打开一个AS.一个AS只会有一个Project(ecli ...
- unity3d的NGUI简易登录界面
1.拖两个文本框和一个按钮在界面上,并做相应的重命名处理,结果如下图: 2.新建一个脚本,附加到“Login”上,脚本内容如下: public UIInput name; public UIInput ...
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
随机推荐
- 如何用 js 实现一个 bind 函数
如何用 js 实现一个 bind 函数 原理 实现方式 总结 refs https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...
- github & markdown & image layout
github & markdown & image layout css & right https://github.com/sindresorhus/log-symbols ...
- web effects collection
web effects collection typewriter effect js 打字机效果 http://www.mattboldt.com/demos/typed-js/ https://g ...
- css 设置多行文本的行间距
css 设置多行文本的行间距 block element span .ticket-card-info{ line-height:16px; display: inline-block; } .tic ...
- 蓝牙鼠标 & 罗技 M337
蓝牙鼠标 & 罗技 M337 蓝牙鼠标,有哪些不需要适配器的 https://www.logitech.com.cn/zh-cn/product/bluetooth-mouse-m337 ht ...
- ng 设置动态的document title
使用Title服务 相关文章 配置路由, 添加data.title参数 import { NgModule } from '@angular/core'; import { RouterModule, ...
- NGK全球启动大会正式启动,资产上链的前景与机会在哪?
据彭博社报道,加州时间11月25日,NGK全球启动大会在美国硅谷圆满落幕,本次NGK全球启动大会为NGK全球化进程正式拉开了帷幕. 众多业界人士共襄盛举,共同进行探讨未来公链发展的去向和契机. 当前, ...
- 为什么ElasticSearch比MySQL更适合全文索引
熟悉 MySQL 的同学一定都知道,MySQL 对于复杂条件查询的支持并不好.MySQL 最多使用一个条件涉及的索引来过滤,然后剩余的条件只能在遍历行过程中进行内存过滤,对这个过程不了解的同学可以先行 ...
- node初体验(一)
1.node.js是一个构建在chrome V8引擎上的javascript运行环境 2.node.js特点:单线程.事件驱动.非阻塞IO模型.轻量 3.node.js是单线程的(多个请求都是一个线程 ...
- eclipse中将项目加载到tocat报错:Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
第一种解决方法:只需要找到导入项目的配置文件即可,举个栗子:D:\公司\iptv_gx\iptv_gx\.settings\org.eclipse.wst.common.project.facet.c ...

