android edittext_Android UI 基础知识 TextView、EditText

1、TextView

TextView (文本框),用于显示文本的一个控件。

  • 文本的字体尺寸单位为 sp

  • sp: scaled pixels(放大像素). 主要用于字体显示

  • 常用属性:

属性名作用
id为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置
layout_width组件宽度
layout_height组件高度
gravity设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等等
text设置显示的文本内容,一般我们是把字符串写到string.xml文件中,然后通过@String/xxx取得对应的字符串内容的
textColor设置字体颜色,同上,通过colors.xml资源来引用
textStyle设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)
textSize字体大小,单位一般是用sp
background控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片
autoLink识别链接类型(web, email, phone ,map ,none, all)
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:gravity="center"              android:orientation="vertical">        <TextView            android:id="@+id/tv"            android:layout_width="400dp"            android:layout_height="200dp"            android:text="@string/baidu_link"            android:gravity="center"            android:textColor="@color/baiduFontColor"            android:textSize="30sp"            android:textStyle="bold"            android:background="@mipmap/backgroud"            android:autoLink="web"/>LinearLayout>
  • 文本设置边框

    • 参考文章:Android UI 基础知识 - shape

    • 实现原理

编写一个ShapeDrawable的资源文件,然后TextView将background设置为这个drawable资源即可。

  • 编写矩形边框的Drawable

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">        <stroke            android:width="2px"            android:color="#000000"/>        <gradient            android:angle="270"            android:endColor="#C0C0C0"            android:startColor="#FCD209"/>        <padding            android:left="5dp"            android:top="5dp"            android:right="5dp"            android:bottom="5dp"/>shape>
  • 编写圆角矩形边框的Drawable

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">        <solid android:color="#87CEEB"/>        <stroke            android:width="2px"            android:color="#000000"/>        <corners            android:bottomLeftRadius="20px"            android:bottomRightRadius="20px"            android:topLeftRadius="20px"            android:topRightRadius="20px"/>        <padding            android:left="5dp"            android:top="5dp"            android:right="5dp"            android:bottom="5dp"/>shape>
  • 设置background

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:gravity="center"              android:orientation="vertical">        <TextView            android:id="@+id/tv1"            android:layout_width="400dp"            android:layout_height="200dp"            android:text="@string/baidu_link"            android:gravity="center"            android:textColor="@color/baiduFontColor"            android:textSize="30sp"            android:textStyle="bold"            android:background="@drawable/shape_bg_01"            android:autoLink="web"/>    <TextView            android:id="@+id/tv2"            android:layout_width="400dp"            android:layout_height="200dp"            android:text="@string/baidu_link"            android:gravity="center"            android:textColor="@color/baiduFontColor"            android:textSize="30sp"            android:textStyle="bold"            android:background="@drawable/shape_bg_02"            android:autoLink="web"/>LinearLayout>

c64a1f96543224cf909d1ce4dd264d03.png

  • 带图片(drawablexxx)的TextView

属性名作用
android:drawableLeft文本左边设置图片
android:drawableRight文本右边设置图片
android:drawableBottom文本下边设置图片
android:drawableTop文本上边设置图片
@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_test10);    TextView textView =(TextView)findViewById(R.id.tvv);    //获得四个不同方向上的图片资源,数组元素依次是:左上右下    Drawable[] drawables = textView.getCompoundDrawables();    //数组下表0-3,依次是:左上右下    drawables[0].setBounds(0,0,100,100);    drawables[1].setBounds(0,0,100,100);    drawables[2].setBounds(0,0,100,100);    drawables[3].setBounds(0,0,100,100);    textView.setCompoundDrawables(drawables[0],drawables[1],drawables[2],            drawables[3]);}
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"                xmlns:tools="http://schemas.android.com/tools"                android:layout_width="match_parent"                android:layout_height="match_parent"                tools:context=".MainActivity">    <TextView            android:id="@+id/tvv"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerInParent="true"            android:drawableBottom="@mipmap/face"            android:drawableTop="@mipmap/face"            android:drawableLeft="@mipmap/face"            android:drawableRight="@mipmap/face"            android:drawablePadding="10dp"            android:text="哈哈哈哈"/>RelativeLayout>

35ca504e577fe678f9206a27b7bd9d1b.png

2、EditText(输入框)

  • EditText输入框,继承于TextView,也继承其属性

  • EditText特有属性

属性名说明
android:hint默认提示文本
android:textColorHint默认提示文本的颜色
android:selectAllOnFocus布尔值。点击输入框获得焦点后,获取到输入框中所有的文本内容
android:inputType对输入的数据进行限制
android:minLines设置最小行数
android:maxLines设置最大行数PS:当输入内容超过maxline,文字会自动向上滚动!!
android:singleLine只允许单行输入,而且不会滚动
android:textScaleX设置字与字的水平间隔
android:textScaleY设置字与字的垂直间隔
    • 文本类型,多为大写、小写和数字符号

android:inputType="none"android:inputType="text"android:inputType="textCapCharacters"android:inputType="textCapWords"android:inputType="textCapSentences"android:inputType="textAutoCorrect"android:inputType="textAutoComplete"android:inputType="textMultiLine"android:inputType="textImeMultiLine"android:inputType="textNoSuggestions"android:inputType="textUri"android:inputType="textEmailAddress"android:inputType="textEmailSubject"android:inputType="textShortMessage"android:inputType="textLongMessage"android:inputType="textPersonName"android:inputType="textPostalAddress"android:inputType="textPassword"android:inputType="textVisiblePassword"android:inputType="textWebEditText"android:inputType="textFilter"android:inputType="textPhonetic"
    • 数值类型

android:inputType="number"android:inputType="numberSigned"android:inputType="numberDecimal"android:inputType="phone"//拨号键盘android:inputType="datetime"android:inputType="date"//日期键盘android:inputType="time"//时间键盘
  • 设置EditText获得焦点,同时弹出小键盘

edit.requestFocus(); //请求获取焦点edit.clearFocus(); //清除焦点

低版本的系统直接requestFocus就会自动弹出小键盘了稍微高一点的版本则需要我们手动地去弹键盘:

Timer timer = new Timer();timer.schedule(new TimerTask() {    public void run() {        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);        imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);    }}, 1000);
  • EditText光标位置的控制

setSelection();//一个参数的是设置光标位置的,两个参数的是设置起始位置与结束位置的中间括的部分,即部分选中
  • 实例代码

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:background="#eeeeee"              android:orientation="vertical"              android:padding="10dp">    <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_horizontal"            android:layout_marginTop="40sp"            android:text="登录页面"            android:textColor="#000000"            android:textSize="20sp" />        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="50dp"            android:orientation="horizontal">        <TextView                android:layout_width="0dp"                android:layout_height="wrap_content"                android:layout_weight="1"                android:gravity="center_horizontal"                android:text="用户名:"                android:textColor="#000000"                android:textSize="19sp" />        <EditText                android:id="@+id/etName"                android:layout_width="0dp"                android:layout_height="50dp"                android:hint="请输入用户名"                android:layout_weight="4" />    LinearLayout>        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="20dp"            android:orientation="horizontal">        <TextView                android:layout_width="0dp"                android:layout_height="wrap_content"                android:layout_weight="1"                android:gravity="center_horizontal"                android:text="密     码:"                android:textColor="#000000"                android:textSize="19sp" />        <EditText                android:id="@+id/etPwd"                android:layout_width="0dp"                android:layout_height="50dp"                android:layout_weight="4"                android:hint="请输入密码"                android:inputType="textPassword" />    LinearLayout>LinearLayout>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值