Android studio 简易登录界面

 

•参考资料

  [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

 

posted @ 2020-02-17 16:21  MElephant  阅读(1505)  评论(0编辑  收藏  举报