文档章节

Android高级xml布局之输入框EditText设计

shzwork
 shzwork
发布于 09/16 18:12
字数 1277
阅读 29
收藏 1

今天给大家介绍一下如何实现一款简约时尚的安卓登陆界面。大家先看一下效果图

当用户输入时动态出现删除按钮

 

现在先罗列一下技术点:
1.如何使用圆角输入框和按钮背景
2.如何实现“手机号”、“密码”后面的竖线
3.如何嵌套输入框的布局
4.如何监听输入框的输入事件及删除按钮的动态显示隐藏

1.如何使用圆角输入框和按钮背景

安卓为开发者准备了shape这个xml标签,用于自定义一些形状。
那么我就来定义一个白色的输入框背景。代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<!-- 形状 -->

<shape xmlns:android="http://schemas.android.com/apk/res/android"

 android:shape="rectangle" >

 

 <solid android:color="#ffffff" />

 <!-- 边框 -->

 <stroke

  android:width="1dip"

  android:color="#ffffff" />

 <!-- 内填充颜色 -->

 <padding

  android:bottom="10dp"

  android:left="10dp"

  android:right="10dp"

  android:top="10dp" />

 <!-- 圆角 -->

 <corners android:radius="6dp" />

 

</shape>

将其设置成任何View的background就可以了

?

1

android:background="@drawable/shape_wihte_frame"

2.如何实现“手机号”、“密码”后面的竖线

这个其实很简单,只需书写一个竖线即可,宽度为1dp或者1px(或你认为更合适的数值)。 

?

1

2

3

4

5

6

7

8

9

10

<View

   android:id="@+id/view1"

   android:layout_width="1dip"

   android:layout_height="fill_parent"

   android:layout_centerVertical="true"

   android:layout_gravity="center_horizontal"

   android:layout_marginLeft="2dp"

   android:layout_marginRight="2dp"

   android:layout_toRightOf="@+id/textView1"

   android:background="#EEEFFF" />

3.如何嵌套输入框的布局

安卓给我们提供了多种布局,但是你用任何一种都没办法把界面设计好。必须嵌套,很多新手不敢去嵌套,大家一定要大胆的去嵌套去使用各种布局,一定会组合出炫酷的效果的。这里布局很简单仅仅是一层嵌套(整个页面布局嵌套输入框的布局)。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

<RelativeLayout

  android:layout_width="fill_parent"

  android:layout_height="fill_parent"

  android:layout_alignParentTop="true"

  android:layout_centerHorizontal="true"

  android:background="@drawable/shape_wihte_frame" >

 

  <TextView

   android:id="@+id/textView1"

   android:layout_width="40dp"

   android:layout_height="wrap_content"

   android:layout_alignParentLeft="true"

   android:layout_centerVertical="true"

   android:lines="1"

   android:padding="1dp"

   android:text="手机号"

   android:textSize="11sp" />

 

  <View

   android:id="@+id/view1"

   android:layout_width="1dip"

   android:layout_height="fill_parent"

   android:layout_centerVertical="true"

   android:layout_gravity="center_horizontal"

   android:layout_marginLeft="2dp"

   android:layout_marginRight="2dp"

   android:layout_toRightOf="@+id/textView1"

   android:background="#EEEFFF" />

 

  <EditText

   android:id="@+id/phonenumber"

   android:layout_width="wrap_content"

   android:layout_height="40dp"

   android:layout_centerVertical="true"

   android:layout_marginLeft="2dp"

   android:layout_toRightOf="@+id/view1"

   android:background="@drawable/transparent"

   android:ems="19"

   android:hint="请输入手机号"

   android:inputType="phone"

   android:padding="1dp"

   android:textSize="12sp" >

 

   <requestFocus />

  </EditText>

 

  <ImageView

   android:id="@+id/del_phonenumber"

   android:layout_width="20dp"

   android:layout_height="20dp"

   android:layout_alignParentRight="true"

   android:layout_centerVertical="true"

   android:layout_marginRight="3dp"

   android:src="@drawable/text_del"

   android:visibility="invisible" />

 </RelativeLayout>

4.如何监听输入框的输入事件及删除按钮的动态显示隐藏

思想很简单,就是监听EditText的输入事件,之后如果输入长度大于0就显示后面的删除按钮,如果=0就隐藏删除按键,点击删除按钮就清空输入框。在这里我写出了一个工具类方便大家调用。高内聚低耦合是我们共同的追求。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

public class EditTextClearTools {

 public static void addclerListener(final EditText e1, final ImageView m1) {

 

  e1.addTextChangedListener(new TextWatcher() {

 

   @Override

   public void onTextChanged(CharSequence s, int start, int before,

     int count) {

    // TODO Auto-generated method stub

 

   }

 

   @Override

   public void beforeTextChanged(CharSequence s, int start, int count,

     int after) {

    // TODO Auto-generated method stub

 

   }

 

   @Override

   public void afterTextChanged(Editable s) {

    // TODO Auto-generated method stub

    // 监听如果输入串长度大于0那么就显示clear按钮。

    String s1 = s + "";

    if (s.length() > 0) {

     m1.setVisibility(View.VISIBLE);

    } else {

     m1.setVisibility(View.INVISIBLE);

    }

 

   }

  });

 

  m1.setOnClickListener(new OnClickListener() {

 

   @Override

   public void onClick(View v) {

    // TODO Auto-generated method stub

    // 清空输入框

    e1.setText("");

 

   }

  });

 

 }

 

}

主程序代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

public class MainActivity extends Activity {

 EditText e1, e2;

 ImageView m1, m2;

 

 @Override

 protected void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  requestWindowFeature(Window.FEATURE_NO_TITLE);

  setContentView(R.layout.activity_user_login);

  init();

 }

 

 private void init() {

  // TODO Auto-generated method stub

  e1 = (EditText) findViewById(R.id.phonenumber);

  e2 = (EditText) findViewById(R.id.password);

  m1 = (ImageView) findViewById(R.id.del_phonenumber);

  m2 = (ImageView) findViewById(R.id.del_password);

  // 添加清楚监听器大气

  EditTextClearTools.addclerListener(e1, m1);

  EditTextClearTools.addclerListener(e2, m2);

 

 }

 

}

xml对于安卓程序的重要性相信大家在开发的路程中会慢慢体会到。在这里仅仅是给了一个简单的例子,后面会更新很多很好的安卓技术博客。我是安卓天,感谢大家支持。希望大家多多沟通交流。

代码连接:源码下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文转载自:https://www.jb51.net/article/129992.htm

shzwork
粉丝 15
博文 817
码字总数 10675
作品 0
厦门
私信 提问
Android开发之输入框EditText介绍

这篇文章主要为大家详细介绍了Android布局之输入框EditText设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 现在先简单介绍一下技术点: 1.如何使用圆角输入框和按钮背景 2.如何实现...

#Temptation
08/26
0
0
通过TextWatcher去观察输入框中输入的内容以及输入字符个数

布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中输入的内容,作个笔记。 主布局:            java代...

长平狐
2012/08/21
186
0
[安卓教学] 创建你的第一个安卓应用 - 第三课 - 建立一个简单的用户界面

一个安卓应用(Android app)的图形用户界面(graphical user interface)是由一系列有层级关系的View(视图组件)和ViewGroup(视图组件组)对象构成。View对象一般是像按钮(buttons)或者...

夜游长空
2014/03/20
1K
0
通过TextWatcher去观察输入框中输入的内容以及输入字符个数

布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中输入的内容,作个笔记。 主布局:            java代...

长平狐
2012/08/14
118
0
通过TextWatcher去观察输入框中输入的内容以及输入字符个数

布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中输入的内容,作个笔记。 主布局:            java代...

长平狐
2012/08/09
235
0

没有更多内容

加载失败,请刷新页面

加载更多

Kylin构建Cube过程详解

1 前言 在使用Kylin的时候,最重要的一步就是创建cube的模型定义,即指定度量和维度以及一些附加信息,然后对cube进行build,当然我们也可以根据原始表中的某一个string字段(这个字段的格式...

大数据技术进阶
3分钟前
1
0
Git保存密码

保存密码 $ git config --global credential.helper store 参数 --global 设置全局,如果用 --local 则只设置当前库 要注意保存时是用明文保存的,所以不要在公用电脑使用...

编程老陆
5分钟前
1
0
ofcms 说明文档

一、模板说明 项目概述 java 版CMS系统、基于java技术研发的内容管理系统、功能:栏目模板自定义、内容模型自定义、多个站点管理、在线模板页面编辑等功能、代码完全开源、MIT授权协议。 技术...

kuchawyz
11分钟前
2
0
理解CSS相对定位和固定定位

本文转载于:专业的前端网站➦理解CSS相对定位和固定定位 前面的话   一般地,说起定位元素是指position不为static的元素,包括relative、absolute和fixed。前面已经详细介绍过absolute绝对...

前端老手
22分钟前
2
0
iOS Xcode升级包地址(感谢大神)

下载地址:DeviceSupport

_____1____
36分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部