•参考资料

  [1]:视频资源

  [2]:Android TextView设置图标,调整图标大小

•效果展示图

  

•前置知识

  • 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 简易登录界面的更多相关文章

  1. android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】

    zhezhelin android studio 新建项目 界面一直停在 [“building ‘ 项目名’ gradle project info”] 安装了android studio 之后,按照 ...

  2. Java图形界面学习---------简易登录界面

    /** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...

  3. android 案例二 登录界面

    效果图: 运行图:   总结: 编写这个简单的用户登录界面,主要用到了以下的知识:   java基础中的IO流的操作 用以读取.显示用户的信息 Android布局 线性布局和相对布局 数据的存储选在包 ...

  4. Android之QQ登录界面

    首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得 ...

  5. android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】

    安装了android studio 之后,按照上文所述的那篇博文下载安装gradle,配置环境变量, 启动android studio,新建项目,发现还是新建不了,界面一直停在 ["buil ...

  6. android studio简易了解第一部分

    1.如果还没下载 jdk,先把jdk下载,然后下载android studio 安装 百度 android studio ,百度软件中心可以下载. Android官网可以下载:     网址: htt ...

  7. android studio简易了解第二部分

    1.新建Moudle(eclispe的项目) 其余的和eclipse差不多,一般情况一直next就可以了! 如果选择New Project会重新打开一个AS.一个AS只会有一个Project(ecli ...

  8. unity3d的NGUI简易登录界面

    1.拖两个文本框和一个按钮在界面上,并做相应的重命名处理,结果如下图: 2.新建一个脚本,附加到“Login”上,脚本内容如下: public UIInput name; public UIInput ...

  9. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

随机推荐

  1. 高阶函数 HOF & 高阶组件 HOC

    高阶函数 HOF & 高阶组件 HOC 高阶类 js HOC 高阶函数 HOF 函数作为参数 函数作为返回值 "use strict"; /** * * @author x ...

  2. Linux bash shell All In One

    Linux bash shell All In One Linux https://tinylab.gitbooks.io/shellbook/content/zh/chapters/01-chapt ...

  3. components & slot

    components & slot vue https://github.com/vuejs/rfcs/blob/master/active-rfcs/0001-new-slot-syntax ...

  4. CodeMirror动态修改代码(关键: editor.getDoc().setValue(data); editor.refresh();)

    在使用codemirror时,其原理是根据form中的textarea标签,自动加载其内容,获得代码行的显示.(具体使用方式参见 codemirror官网使用手册 http://codemirror. ...

  5. JDK环境解析,安装和目的

    目录 1. JDK环境解析 1.1 JVM 1.2 JRE 1.3 JDK 2. JDK安装 2.1 为什么使用JDK8 2.1.1 更新 2.1.2 稳定 2.1.3 需求 2.2 安装JDK 2. ...

  6. Java中出现Unhandled exception的原因

    说明某个方法在方法声明上已经声明了会抛异常,那么在调用这个方法的时候,就必须做异常处理,处理的方式有2种,要么try-catch这个异常,要么继续往上一层抛出这个异常,这是java语法要求的,必须这么 ...

  7. Echars统计图的使用

    第一步去官网挑选自己需要的图形了. 官网地址:https://echarts.baidu.com/ 第二步按照官网的demo,下载需要的js组件并放到自己的项目中. 第三步仿照demo创建需要的div ...

  8. TERSUS无代码开发(笔记03)-常用快捷键

    常用快捷键 1.a 普通行为元件调用 2.b 判断输入的值是什么值 3.c 有条件的传值处理 4.e 输出元件 5.f 传值或流程 6.t 输入元件 7.p 调用元件查询 8.x 判断是否有输入值 图 ...

  9. docker启动ubuntu的桌面环境

    一.概述 由于最近一段时间在家办公,国内服务器在阿里云,国外站点在aws.家里的移动宽带比较差,无法访问aws. 所以尝试在阿里云启动docker,找到一个lxde桌面环境的ubuntu镜像. 二.启 ...

  10. Java 程序员每天都在做什么?

    作为一名 在大.中.小微企业都待过 的 Java 开发者,今天和大家分享下自己在不同公司的工作日常和收获.包括一些个人积累的工作提升经验,以及一些 Java 学习的方法和资源. 先从我的第一份 Jav ...