属性 | 方法 | 说明 |
android:autoLink | 是否将符合格式的文本自动转换为可点击的链接 一下几种 web photo map all | |
android:autoText |
TextView tv = new TextView(context); //只接受整数输入 KeyListener l = new DigitsKeyListener(fasle,false); //接受有符号整数输入 KeyListener l = new DigitsKeyListener(true,false); //接受小数,整数输入 KeyListener l = new DigitsKeyListener(false,true); //接受有符号整数/小数输入 KeyListener l = new DigitsKeyListener(true,true); tv.setKeyListener(l); 如果想要实现更大自由度的过滤定制,可以自己写一个KeyListener(继承BaseKeyListener) 并实现InputFilter,重写filter()函数,在filter()函数里可以实现自由的过滤。
| 好像没什么效果 控制是否将url,email等自动转换为可单击的链接 |
android:capitalize | 好像没什么效果,在EditText里也没效果 控制是否将输入的文本转换为大写 一下几种设置 sentences 每个句子的首字母 words 每个单词的首字母 characters 所有字母 | |
android:digits | 哪些字符允许输入,比如设置了abcd,那么除了这4个 字母外的其他都输入不进去 | |
android:cursorVisible | setCursorVisible(boolean visible) | 文本框的光标是否可见 EditText有效果,在EditView里本来就没光标 |
android:drawableTop | setCompoundDrawablesWithIntrinsicBounds 例子: Resources res=getResources(); Drawable a1 = res.getDrawable(R.drawable.a1); Drawable a2 = res.getDrawable(R.drawable.a2); Drawable a3 = res.getDrawable(R.drawable.a3); Drawable a4 = res.getDrawable(R.drawable.a4); //实际上这是一个BitmapDrawable对象 tv.setCompoundDrawablesWithIntrinsicBounds(a3, a1, a4, a2);
| 在文本框的头部插入指定图像 |
android:drawableBottom | 底部 | |
android:drawableLeft | 左边 | |
android:drawableRight | 右边 | |
android:drawableStart | 好像没效果 头部位置 | |
android:drawableEnd | 好像没效果 尾部位置 | |
android:drawablePadding | 与drawable图像之间的距离, 设置了之后,就不是紧挨着了 | |
android:editable | 是否可编辑 | |
android:ellipsize | setEllipsize(TextUtils.TruncateAt where) TruncateAt.START TruncateAt.MIDDLE TruncateAt.END TruncateAt.MARQUEE
| 超出文本长度后如何显示 start 开始处截断后面省略号 middle 中间处截断后面省略号 end 结尾处截断后面省略号 marquee 自动滚动显示 要设置 android:singleLine="true" 如果要滚动显示 marquee,还必须如下设置 android:focusable="true" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dp"> <TextView android:id="@+id/textView1" android:layout_width="200dp" android:layout_height="wrap_content" android:ellipsize="start" android:ems="20" android:singleLine="true" android:text="中国之声《央广新闻》报道,2013年5月北京福润天成房地产有限公司以46亿元摘得上海长宁区新华路街道71街坊地块,刷新当年上海拍卖总价地王记录,但是成交至今已经有15个月了" /> <TextView android:id="@+id/textView2" android:layout_width="200dp" android:layout_height="wrap_content" android:ellipsize="middle" android:ems="20" android:singleLine="true" android:text="中国之声《央广新闻》报道,2013年5月北京福润天成房地产有限公司以46亿元摘得上海长宁区新华路街道71街坊地块,刷新当年上海拍卖总价地王记录,但是成交至今已经有15个月了" /> <TextView android:id="@+id/textView3" android:layout_width="200dp" android:layout_height="wrap_content" android:ellipsize="end" android:ems="20" android:singleLine="true" android:text="中国之声《央广新闻》报道,2013年5月北京福润天成房地产有限公司以46亿元摘得上海长宁区新华路街道71街坊地块,刷新当年上海拍卖总价地王记录,但是成交至今已经有15个月了" /> <TextView android:id="@+id/textView4" android:layout_width="200dp" android:layout_height="wrap_content" android:ellipsize="marquee" android:ems="20" android:singleLine="true" android:focusable="true" android:focusableInTouchMode="true" android:text="中国之声《央广新闻》报道,2013年5月北京福润天成房地产有限公司以46亿元摘得上海长宁区新华路街道71街坊地块,刷新当年上海拍卖总价地王记录,但是成交至今已经有15个月了" /> </LinearLayout>
|
android:marqueeRepeatLimit | setMarqueeRepeatLimit(int marqueeLimit) | android:ellipsize设置为marquee,自动滚动的次数 |
android:ems | setEms(int ems) | 显示多少字符,超过的将不显示 |
android:fontFamily | setTypeface | 设置字体 默认只有“sans”, “serif”, “monospace" 要用其他的,就必须设置ttf textView=(TextView)findViewById(R.id.textView2); Typeface typeFace =Typeface.createFromAsset(getAssets(),"DroidSansFallback.ttf"); textView.setTypeface(typeFace);
|
android:gravity | setGravity(int gravity) | 设置内部字体的对齐方式 |
android:height | setHeight(int pixels) | 高度 |
android:hint | setHint(CharSequence hint) | 空的时候,默认的提示 |
android:imeActionId | 当关联输入法时,为输入法提供actionID | |
android:imeActionLabel | 当关联输入法时,为输入法提供actionLabel | |
android:imeOptions | setImeActionLabel(CharSequence label, int actionId)
EditorInfo.IME_ACTION_NONE EditorInfo.IME_ACTION_GO 自定义imeOptions,设置setOnEditorActionListener,并判断actionID XML <EditText android:id="@+id/email_content11" android:layout_width="fill_parent" android:layout_height="wrap_content" android:imeActionLabel="测试" android:imeActionId="878" android:inputType="text" android:text="" > </EditText> java代码 EditText et=(EditText)findViewById(R.id.email_content11); et.setOnEditorActionListener(new OnEditorActionListener() { public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if(actionId==878){ Toast.makeText(MainActivity.this, "actionId: "+actionId, 1000).show(); Log.v("","actionId:"+actionId ); } return false; } });
| 必须设置android:inputType="text"或其他,否则下面的没效果 当关联输入法时,为输入法提供额外的信息 可以设置如下值: normal 自动判断,如果还有下一个就变成下一个, 如果没了就变成done actionUnspecified 好像和normal差不多,没感觉有区别
actionNone 变成空格了 actionGo 按钮变成Go actionSearch 按钮变成查询图标 actionSend 下一个 actionNext 下一个 actionDone 输入完成,并关闭键盘 |
android:includeFontPadding | setIncludeFontPadding(boolean includepad) | 设置文本是否包含顶部和底部额外空白 |
android:inputMethod | ||
android:inputType | setRawInputType(int type) 变量在EditorInfo属性里,如 InputType.TYPE_NUMBER_FLAG_DECIMAL | android:inputType="none"--输入普通字符 |
android:lineSpacingMultiplier | setLineSpacing(float add, float mult) add lineSpacingExtra | 行之间的间距行,比如2,就是两行中间间隔1行 |
android:lineSpacingExtra | 2行间距多少dp高度,和上面的差不多,一个是按行算,一个是按高度dp算 | |
android:lines | setLines(int lines) | 默认几行 |
android:linksClickable | setLinksClickable(boolean whether) | 链接是否可点击 |
android:maxEms | setMaxEms(int maxems) | 最大宽度,以em为单位 必须设置为android:layout_width="wrap_content",才有效果 如果设置为3,如下图: |
android:minEms | setMinEms(int minems) | 最小宽度 |
android:maxHeight | setMaxHeight(int maxHeight) | 最大高度,以dp为单位,设置了之后,回车换行就不会超过这个高度 |
android:minHeight | ||
android:maxWidth | setMaxWidth(int maxpixels) | 最大宽度 |
android:minWidth | ||
android:maxLength | tv.setFilters(new InputFilter[] {new InputFilter.LengthFilter(5)}); 自定义控制,不允许输入a InputFilter aa=new InputFilter(){ public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { Log.v("", source.toString()); if(source.toString().equals("a")){ return ""; } return null; }}; tv=(TextView)findViewById(R.id.editText1); tv.setFilters(new InputFilter[] {aa});
| 最大字符长度,比如设置为10,就只能输入10个字符 |
android:maxLines | setMaxLines(int maxlines) | 最大多少行 |
android:minLines | ||
android:numeric | 现在好像已经不这么用了,被inputType代替了 3个属性 integer 整形 signed 带符号的数值 decimal 带小数 | |
android:password | setTransformationMethod (PasswordTransformationMethod.getInstance()) 打√显示密码
XML <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:shadowColor="#FFFF00FF" android:shadowDx="3" android:shadowDy="3" android:shadowRadius="5" android:inputType="textPassword" android:text="123456789" > </EditText> JAVA public class MainActivity extends Activity { TextView tv; CheckBox cb; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv=(TextView)findViewById(R.id.editText1); cb=(CheckBox)findViewById(R.id.checkBox1); cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ tv.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); }else{ tv.setTransformationMethod(PasswordTransformationMethod.getInstance()); } } }); } }
| 密码框,被inputType代替了 |
android:phoneNumber | 电话,被inputType代替了 | |
android:privateImeOptions | setPrivateImeOptions(String type) | 不知道什么意思 |
android:scrollHorizontally | 没什么效果 文本显示不下,是否允许水平滚动 | |
android:selectAllOnFocus | setSelectAllOnFocus(boolean selectAllOnFocus) | 选中时是否全选 |
android:shadowColor | * @attr ref android.R.styleable#TextView_shadowColor 代码 <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:shadowColor="#FFFF00FF" android:shadowDx="3" android:shadowDy="3" android:shadowRadius="5" android:text="啊温热sfd" > </EditText>
| 阴影颜色 |
android:shadowDx | 阴影x方向位移 | |
android:shadowDy | 阴影y方向位移 | |
android:shadowRadius | 阴影模糊度,对大越模糊 | |
android:singleLine | setTransformationMethod(TransformationMethod method) tv=(TextView)findViewById(R.id.editText1); TransformationMethod 实现的类 SingleLineTransformationMethod -单行 PasswordTransformationMethod 密码
| 单行模式,不换行 |
android:text | setText | 显示的文本 |
android:textAllCaps | setAllCaps(boolean allCaps) | 是否将所有文字转换为大写 只有API 14以上才支持 |
android:textAppearance | 设置颜色、字体、大小等样式 比如系统自带的大字样式 android:textAppearance= "?android:attr/textAppearanceLargeInverse" | |
android:textColor | setTextColor | 字体颜色 <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="adasfsd" android:textColor="#FFFF0000" />
|
android:textColorHighlight | setHighlightColor(int color) | 选中时的背景色 <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="adasfsd" android:textAllCaps="true" android:textAppearance=
|
android:textColorHint | setHintTextColor | hint颜色 |
android:textColorLink | setLinkTextColor | 变成link之后的字体颜色 |
android:textIsSelectable | setTextIsSelectable | 不能编辑是,文本是否可以被选中 |
android:textScaleX | setTextScaleX | 横向缩放 |
android:textSize | setTextSize | 字体大小 android:textSize="40dp" |
android:textStyle | 字体风格 normal bold 粗体 italic 斜体 | |
android:typeface | textView=(TextView)findViewById(R.id.textView2); Typeface typeFace = | 设置字体 默认只有3中 sans、serif、monospace 可以自定义字体
|
android:width | setWidth | 长度 |
例子1
代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dp" > <!--字号20 末尾设置图像 --> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:drawableRight="@drawable/abc_ic_search" android:textSize="20sp" /> <!-- 文字过长,中间省略,所有字母大写 --> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="middle" android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView" android:textAllCaps="true" /> <!-- 对邮件、电话加链接 --> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextViewasdf qweqwe@163.com sfasf 057588001234" android:autoLink="all" /> <!-- 设置文字颜色、大小、阴影 --> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" android:shadowDx="10" android:shadowDy="8" android:shadowColor="#00f" android:shadowRadius="3" android:textSize="18pt" /> <!-- 密码框 --> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:inputType="textPassword" android:textAppearance="?android:attr/textAppearanceLarge" /> <CheckedTextView android:id="@+id/checkedTextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checkMark="@drawable/abc_ic_clear" android:text="CheckedTextView" /> </LinearLayout>
例子2
主文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dp" > <TextView android:layout_margin="10dp" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:background="@drawable/bg1" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:layout_margin="10dp" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bg2" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
bg1.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 设置背景为透明色 --> <solid android:color="#0000"/> <solid android:color="#f00" android:width="4px"/> </shape>
bg2.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 4个圆角 --> <corners android:topLeftRadius="20px" android:topRightRadius="5px" android:bottomRightRadius="20px" android:bottomLeftRadius="5px" /> <!--边框宽度和颜色--> <stroke android:color="#f0f" android:width="4px"/> <!-- 指定颜色渐变 --> <gradient android:startColor="#f00" android:centerColor="#0f0" android:endColor="#00f" android:type="sweep"/> </shape>