Android UI设计:TextView与EditText
目录
TextView
EditText
注意点
TextView
简单属性:
text textcolor textsize
autolink
drawableTop Left Right Bottom
Pading Left Right Bottom
1、text
用法:android:text=""
例子:
方式1:android:text="我是一个文本"
方式2:mtextview.setText("我重新设置了一个文本");
2、textcolor
用法: android:textColor=""
例子:
方式1:android:textColor="#ff0000"
方式2:android:textColor="@color/red"
//第二种这种用法需要在values下新建一个xml写入
方式3:mtextview.setTextColor(Color.BLUE);
3、textsize
用法: android:textSize=””
例子: android:textSize="30sp"
//注意此时文本字体大小的设置需要使用sp为单位,
//并且在mainactivity中mtextview.setTextSize(50);是设置像素不是设置字体大小
4、 autolink(自动连接)
用法:android:autoLink=”” //”“内的内容可以有其他选项
例子:
方式1:android:autoLink="web"
方式2:mtextview.setAutoLinkMask(Linkify.WEB_URLS);
//方式2()内注意使用的是Linkify.
5、drawableTop Left Right Bottom(图片位置)
用法:android:drawableBottom=””
例子:android:drawableBottom=”@mipmap/https://www.it610.com/article/ic_launcher”
//在Android Studio下是@mipmap,Eclipse下是@drawable
6、drawrablePadding Left Right Bottom
用法:android:drawrablePaddingTop=””
例子:android:drawrablePaddingTop="10dp"
注:android:padding和android:layout_margin的区别,其实概念很简单,padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。margin则是站在自己的角度描述问题,规定自己和其他(上下左右)的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。
7、textStyle:加粗与倾斜
用法:android:textStyle=""
例子:android:textStyle="bold"
//加粗
备注代码
1、
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textview" android:text="我是一个文本" android:textColor="@color/red" />
2、
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textview" android:text="我要上网http://www.baidu.com" android:textSize="30sp" android:textColor="@color/red" /> setContentView(R.layout.activity_main); mtextview= (TextView) findViewById(R.id.textview); mtextview.setText("我重新设置了一个文本"); mtextview.setTextColor(Color.BLUE); mtextview.setTextSize(50);//设置像素大小 mtextview.setAutoLinkMask(Linkify.WEB_URLS);
3、
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_alignParentBottom="true" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview1" android:text="消息" android:textSize="30sp" android:textColor="@color/red" android:drawableBottom="@mipmap/https://www.it610.com/article/ic_launcher" android:gravity="center_horizontal" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textview2" android:text="联系人" android:textSize="30sp" android:textColor="@color/red" android:drawableBottom="@mipmap/https://www.it610.com/article/ic_launcher" android:padding="10dp" android:gravity="center_horizontal" /> LinearLayout>RelativeLayout>
难一点的属性
TextView的跑马灯效果
1、设置单行显示singleLine=”true”
2、设置ellipsize属性
3、focusable设置焦点
4、设置focusableInTouchMode
5、文本内容必须超过屏幕宽度
"match_parent" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/textview" android:text="我要上网http://www.baidu.comndfdhbcdhvgvgdsakksdcdcdsdscdsssajddddddddjjnvvvvvvvvvvvvvdddddddddd" />
富文本属性
该属性展示功能比较多的文本,类似于扣扣发表情,利用spanned实现
spanned:可以支持一部分的html也可以动态的添加一些图片
例子:
Spanned span=Html.fromHtml(text,Getter,null)//设置文本中的红色字
文本加中划线:利用setPaintFlag实现
package com.example.administrator.mytextview;import android.app.Activity;import android.graphics.Color;import android.graphics.Paint;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.Html;import android.text.Spanned;import android.text.method.PasswordTransformationMethod;import android.text.util.Linkify;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import java.lang.reflect.Field;public class MainActivity extends Activity { private EditText mtextview; private TextView mtext; private TextView mtext2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mtext= (TextView) findViewById(R.id.textview_span); mtext2= (TextView) findViewById(R.id.textview_line); mtext2.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG); String text="我是一个富文本,然后中间加一个图标"; Html.ImageGetter getter=new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { Log.d("printsource",source); int id=R.mipmap.https://www.it610.com/article/ic_launcher; Class clazz=R.mipmap.class; try { Field field=clazz.getDeclaredField(source); id=field.getInt(clazz); Log.d("printID",""+id); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } Drawable drable=getResources().getDrawable(id); drable.setBounds(0,0,drable.getIntrinsicHeight(),drable.getIntrinsicWidth()); return drable; } }; Spanned span= Html.fromHtml(text,getter,null); mtextview.setText(span);// Button log= (Button) findViewById(R.id.log);// log.setOnClickListener(new View.OnClickListener() {// @Override// public void onClick(View v) {// mtextview= (EditText) findViewById(R.id.paaword);// mtextview.setTransformationMethod(null);// mtextview.setTransformationMethod(new PasswordTransformationMethod());// }// });// mtextview= (TextView) findViewById(R.id.textview);// // mtextview.setText("我重新设置了一个文本");// mtextview.setTextColor(Color.BLUE);// // mtextview.setTextSize(50);//设置像素大小// mtextview.setAutoLinkMask(Linkify.WEB_URLS);// mtextview.setText("我要上网http://www.baidu.com");//注意文本设置 }}
EditText
EditText:可编辑文本,继承于TextView,因此许多属性与TextView相类似但也有其特有属性。
特殊属性:
hint :提示文本
hinttextcolor:提示文本颜色
hint与hinttextcolor用法简单不再介绍
password:用于输入框设置可见不可见
maxLines:设置最大行数,这样当文本超过最大行数就会向上滚动。
用法:
密码开始不可见:1、password 2、setTransformationMetho(null)
密码开始可见:
1、setTransformationMethod
2、new PasswordTransformationMethod
方式一:
android:password="true"//设置不可见 mtextview.setTransformationMethod(null); //mainActivity中的语句,通过点击按钮,使文本变为可见
方式二:
在layout中不设置password在mainActivity中直接设置,本身可见点击后不可见
mtextview.setTransformationMethod(new PasswordTransformationMethod());
inputtype:number /phone 用法简单不介绍
digits:设置输入,例如设置身份证,只能输入数字+x/X
例子:
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="请输入身份证号码" android:digits="1234567890xX"/>
注意点
1、setTextSize()是设置像素
2、TextView的跑马灯效果不建议使用,因为当界面中存在EditText时,不容易实现焦点的聚焦
3、富文本以及中划线比较常用必须学会
4、使用下面语句时要注意文本必须设置在setAutoLinkMask语句的下方
mtextview.setAutoLinkMask(Linkify.WEB_URLS); mtextview.setText("我要上网http://www.baidu.com");//注意文本设置
更多相关文章
- Android 的自定义Spinner组件实现方式
- Android修改输入法Enter的文本
- Android去掉状态栏和标题栏的两种方式
- Android全屏Activity的几种方式
- Android获取在线视频的缩略图方式对比
- Android XML解析学习——Sax方式(续)
- Android计时器正确应用方式解析
- android控件的对齐方式详解
- Android editText(文本框) 的基本属性及用法: