TextView
EditText
注意点
简单属性:
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/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"
/>
<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);
<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/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/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.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:可编辑文本,继承于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");//注意文本设置