•参考资料

  [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. 如何用 js 实现一个 bind 函数

    如何用 js 实现一个 bind 函数 原理 实现方式 总结 refs https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  2. github & markdown & image layout

    github & markdown & image layout css & right https://github.com/sindresorhus/log-symbols ...

  3. web effects collection

    web effects collection typewriter effect js 打字机效果 http://www.mattboldt.com/demos/typed-js/ https://g ...

  4. css 设置多行文本的行间距

    css 设置多行文本的行间距 block element span .ticket-card-info{ line-height:16px; display: inline-block; } .tic ...

  5. 蓝牙鼠标 & 罗技 M337

    蓝牙鼠标 & 罗技 M337 蓝牙鼠标,有哪些不需要适配器的 https://www.logitech.com.cn/zh-cn/product/bluetooth-mouse-m337 ht ...

  6. ng 设置动态的document title

    使用Title服务 相关文章 配置路由, 添加data.title参数 import { NgModule } from '@angular/core'; import { RouterModule, ...

  7. NGK全球启动大会正式启动,资产上链的前景与机会在哪?

    据彭博社报道,加州时间11月25日,NGK全球启动大会在美国硅谷圆满落幕,本次NGK全球启动大会为NGK全球化进程正式拉开了帷幕. 众多业界人士共襄盛举,共同进行探讨未来公链发展的去向和契机. 当前, ...

  8. 为什么ElasticSearch比MySQL更适合全文索引

    熟悉 MySQL 的同学一定都知道,MySQL 对于复杂条件查询的支持并不好.MySQL 最多使用一个条件涉及的索引来过滤,然后剩余的条件只能在遍历行过程中进行内存过滤,对这个过程不了解的同学可以先行 ...

  9. node初体验(一)

    1.node.js是一个构建在chrome V8引擎上的javascript运行环境 2.node.js特点:单线程.事件驱动.非阻塞IO模型.轻量 3.node.js是单线程的(多个请求都是一个线程 ...

  10. 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 ...