android:layout_height=“wrap_content”
android:drawableLeft=“@mipmap/ic_launcher”
android:layout_marginTop=“@dimen/dimen_10”
android:gravity=“center_vertical”
android:shadowColor=“@color/color_FF773D”
android:shadowDx=“30”
android:shadowDy=“-20”
android:shadowRadius=“2”
android:text=“右侧添加图片和使用阴影”
android:textColor=“@color/color_188FFF”
android:textSize=“@dimen/text_size_20” />
<TextView
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:autoLink=“email|phone”
android:gravity=“center_vertical”
android:layout_marginTop=“@dimen/dimen_10”
android:text=“可点击跳转邮件:SCC5201314@qq.com\n可点击跳转电话:0215201314”
android:textColor=“@color/color_188FFF”
android:textSize=“@dimen/text_size_14” />
<TextView
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:ellipsize=“end”
android:gravity=“center_vertical”
android:lineSpacingMultiplier=“1.2”
android:layout_marginTop=“@dimen/dimen_10”
android:maxLength=“2”
android:text="TxtView继承了View,它还是Button、EditText两个UI组件类的父类。它的作用是在用户界面上显示文本素。从功能上来看TextView就是个文本编辑器,只不过Android关闭的它的可编辑功能。如果需要一个可编辑的文本框,就要使用到它的子类Editext了,Editext允许用户编辑文本框中的内容。TextView和Editext它俩最大的区别就在于TextView不允许用户编辑文本内容,Editext允许用户编辑文本内容。
下面咱写几个实例来详细了解一下TextView的。"
android:textColor=“@color/color_188FFF”
android:textSize=“@dimen/text_size_14” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:background=“@color/color_ff0000”
android:layout_marginTop=“@dimen/dimen_10”
android:padding=“10dp”
android:text=“背景色红色的文本”
android:textColor=“@color/white” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dimen_10”
android:background=“@drawable/bg_tv_frame_red”
android:padding=“10dp”
android:text=“带着红色边框的文本” />
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dimen_10”
android:background=“@drawable/bg_tv_frame_gradient”
android:padding=“10dp”
android:textColor=“@color/white”
android:text=“带着边框和背景色渐变的文本” />
background设置边框的文件 android:background=“@drawable/bg_tv_frame_red”
<?xml version="1.0" encoding="utf-8"?>带着边框和背景色渐变 android:background=“@drawable/bg_tv_frame_gradient”
<?xml version="1.0" encoding="utf-8"?><gradient
android:startColor=“@color/color_188FFF”
android:centerColor=“@color/color_FF773D”
android:endColor=“@color/color_ff0000”
android:type=“linear”
/>
2.在xml中创建,在代码中设置属性
效果图:
布局文件 :
<?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:layout_margin=“@dimen/dimen_20”
android:orientation=“vertical”>
<TextView
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:text=“下面是用代码实现效果”
android:textSize=“@dimen/text_size_18”
android:layout_marginTop=“@dimen/dimen_20”
android:layout_marginBottom=“@dimen/dimen_10”
android:textColor=“@color/black”
android:textStyle=“bold” />
<TextView
android:id=“@+id/tv_flag”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:textColor=“@color/color_188FFF”
android:layout_marginTop=“@dimen/dimen_10”
android:text=“给文本加划线”
android:textSize=“@dimen/text_size_18” />
<TextView
android:id=“@+id/tv_gradient”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dimen_10”
android:textColor=“@color/white”
android:text=“文字渐变是不是很神奇”
android:textSize=“@dimen/text_size_18” />
<TextView
android:id=“@+id/tv_bg”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dimen_10”
android:padding=“10dp”
android:text=“设置背景色”
android:textColor=“@color/white”
android:textSize=“@dimen/text_size_18” />
<TextView
android:id=“@+id/tv_size”
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_marginTop=“@dimen/dimen_10”
android:textColor=“@color/color_ff0000”
android:text=“文字特别大小不一致” />
<TextView
android:id=“@+id/tv_onclick”
android:layout_width=“match_parent”
android:layout_marginTop=“@dimen/dimen_10”
android:layout_height=“wrap_content”
android:textSize=“@dimen/dimen_20”
android:text=“可点击可长按” />
运行结果:
在代码中实现:
//下划线并加清晰
tv_flag.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
tv_flag.getPaint().setAntiAlias(true);//抗锯齿
int[] colors = {0xff188fff, 0xffff773D, 0xffff0000};//颜色的数组
LinearGradient mLinearGradient = new LinearGradient(0, 0, 0,
tv_gradient.getPaint().getTextSize(), colors, null, Shader.TileMode.CLAMP);
tv_gradient.getPaint().setShader(mLinearGradient);
tv_gradient.invalidate();
int fillColor = Color.parseColor(“#ff0000”);//内部填充颜色
GradientDrawable gd = new GradientDrawable();//创建drawable
gd.setColor(fillColor);//设置背景色
gd.setCornerRadius(10);//设置圆角
tv_bg.setBackground(gd);//设置背景
Spannable wordtoSpan = new SpannableString(tv_size.getText().toString());
//setSpan:参数1,设置文字大小;参数2,开始的文字位置;参数3,结束改变文字位置不包含这个位置
wordtoSpan.setSpan(new AbsoluteSizeSpan(DensityUtil.dip2px(this, 18)), 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
wordtoSpan.setSpan(new AbsoluteSizeSpan(DensityUtil.dip2px(this, 24)), 2, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
wordtoSpan.setSpan(new AbsoluteSizeSpan(DensityUtil.dip2px(this, 10)), 5, tv_size.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_size.setText(wordtoSpan);
//TextView其实也是有点击事件的毕竟它的爸爸Veiew
tv_onclick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MLog.e(“这里是点击事件”);
Toast.makeText(TextViewActivity.this,“这里是点击事件”,Toast.LENGTH_SHORT).show();
}
});
tv_onclick.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
MLog.e(“这里长按事件”);
Toast.makeText(TextViewActivity.this,“这里长按事件”,Toast.LENGTH_SHORT).show();
//true表示事件已消费
return true;
}
});
运行结果分析
-
TextView的属性在xml中可以使用的大部分在代码中也是可以实现的,看个人喜好怎么去使用。
-
因TextView继承View,所以可以使用View的方法。如View.OnClickListener()和View.OnLongClickListener()还有去慢慢探索吧。
3.在代码中创建并设置属性
先看效果图:
下面是实现所用的代码:
//ll_act_tv布局文件根布局id
LinearLayout ll_act_tv = findViewById(R.id.ll_act_tv);
TextView textView = new TextView(this);//创建控件
textView.setText(“蠢代码写的哦”);//设置控件内容
textView.setTextColor(Color.RED);//设置控件颜色
textView.setTextSize(DensityUtil.dip2px(this, 20));//设置控件字体大小
ll_act_tv.addView(textView);
TextView今天就聊到这里,后面还有它的子类,比较子类也是比较厉害的不可能一文搞定。你学会了吗?嘿嘿嘿
TextViewXML属性和相关方法说明。
android:allowUndo
是否应允许对可编辑文本进行撤消。默认为真。
可以是布尔值,例如 “true"或"false”。
android:autoLink
控制是否自动找到 url 和电子邮件地址等链接并将其转换为可点击的链接。默认值为"none",禁用此功能。
必须是以下常量值中的一个或多个(以"|"分隔)。
Constant | Value | Description |
all | f | 匹配所有模式(相当于 web|email|phone|map)。 |
2 | 匹配电子邮件地址。 | |
map | 8 | 匹配地图地址。弃用:见。Linkify.MAP_ADDRESSES |
none | 0 | 不匹配任何模式(默认)。 |
phone | 4 | 匹配电话号码。 |
web | 1 | 匹配 Web URL。 |
相关方法:setAutoLinkMask(int)
android:autoSizeMaxTextSize
自动调整文本大小时要使用的最大文本大小约束。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
相关方法:setAutoSizeTextTypeUniformWithConfiguration(int,int,int,int)
android:autoSizeMinTextSize
自动调整文本大小时要使用的最小文本大小约束。
相关方法:setAutoSizeTextTypeUniformWithConfiguration(int,int,int,int)
android:autoSizePresetSizes
要与autoSizeTextTypeset to结合使用的维度的资源数组 uniform。autoSizeStepGranularity如果设置则覆盖 。
相关方法:setAutoSizeTextTypeUniformWithPresetSizes(int,int)
android:autoSizeStepGranularity
如果autoSizeTextType设置为"uniform",请指定自动调整步长。默认值为1px。覆盖autoSizePresetSizes(如果设置)。
相关方法:setAutoSizeTextTypeUniformWithConfiguration(int,int,int,int)
android:autoSizeTextType
指定自动调整大小的类型。请注意,此功能不受EditText支持,仅适用于 TextView。
必须是以下常量值之一。
Constant | Value | Description |
none | 0 | 没有自动调整大小(默认)。 |
uniform | 1 | 统一的水平和垂直文本大小缩放以适应容器。 |
相关方法:setAutoSizeTextTypeWithDefaults(int)
android:autoText
如果设置,则指定此 TextView 具有文本输入法并自动更正一些常见的拼写错误。默认值为"假"。
相关方法:setKeyListener(KeyListener)
android:breakStrategy
中断策略(控制段落布局)。
必须是以下常量值之一。
Constant | Value | Description |
balanced | 2 | 断线策略平衡线长度。 |
high_quality | 1 | 换行使用高质量的策略,包括连字符。 |
simple | 0 | 换行使用简单的策略。 |
相关方法:setBreakStrategy(int)
android:bufferType
确定 getText() 将返回的最小类型。默认值为"正常"。请注意,EditText 和 LogTextBox 始终返回 Editable,即使您在此处指定的功能不那么强大。
必须是以下常量值之一。
Constant | Value | Description |
editable | 2 | 只能返回 Spannable 和 Editable。 |
normal | 0 | 可以返回任何 CharSequence,如果源文本是 Spanned,则可以是 Spanned 。 |
spannable | 1 | 只能返回 Spannable。 |
相关方法:setText(int,TextView.BufferType)
android:capitalize
如果设置,则指定此 TextView 具有文本输入法并应自动将用户键入的内容大写。默认值为"无"。
必须是以下常量值之一。
Constant | Value | Description |
characters | 3 | 大写每个字符。 |
none | 0 | 不要自动大写任何东西。 |
sentences | 1 | 将每个句子的第一个单词大写。 |
words | 2 | 将每个单词的第一个字母大写。 |
相关方法:setKeyListener(KeyListener)
android:cursorVisible
使光标可见(默认)或不可见。
相关方法:setCursorVisible(boolean)
android:digits
如果设置,则指定此 TextView 具有数字输入法,并且这些特定字符是它将接受的字符。如果设置了此项,则暗示数字为真。默认值为假。
相关方法:setKeyListener(KeyListener)
android:drawableBottom
要在文本下方绘制的可绘制对象。
相关方法:setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)
android:drawableEnd
要绘制到文本末尾的可绘制对象。
相关方法:setCompoundDrawablesRelativeWithIntrinsicBounds(int,int,int,int)
android:drawableLeft
要绘制到文本左侧的可绘制对象。
相关方法:setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)
android:drawablePadding
可绘制对象和文本之间的填充。
相关方法:setCompoundDrawablePadding(int)
android:drawableRight
相关方法:setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)
android:drawableStart
要绘制到文本开头的可绘制对象。
相关方法:setCompoundDrawablesRelativeWithIntrinsicBounds(int,int,int,int)
android:drawableTint
应用于复合(左侧、顶部等)可绘制对象的色调。
相关方法:setCompoundDrawableTintList(ColorStateList)
android:drawableTintMode
用于应用复合(左侧、顶部等)可绘制色调的混合模式。
相关方法:setCompoundDrawableTintMode(PorterDuff.Mode)
android:drawableTop
要在文本上方绘制的可绘制对象。
相关方法:setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)
android:editable
如果设置,则指定此 TextView 具有输入法。除非另有说明,否则它将是文本文件。对于 TextView,默认为 false。对于 EditText,默认为 true。
android:editorExtras
对 包含要提供给输入法的附加数据的XML 资源的引用,该 资源对输入法的实现是私有的。这只是在EditorInfo.extras输入法连接时填写该字段。
相关方法:setInputExtras(int)
android:elegantTextHeight
优雅的文本高度,特别是对于不太紧凑的复杂脚本文本。可以是一个布尔值,例如 “true"或"false”。
相关方法:setElegantTextHeight(boolean)
android:ellipsize
如果设置,会导致长于视图宽度的单词被椭圆化而不是在中间断开。您通常还希望设置 scrollHorizontally 或 singleLine,以便将整个文本也限制在一行中,而不是仍然允许分成多行。
相关方法:setEllipsize(TextUtils.TruncateAt)
android:ems
使TextView正好有这么多em宽。可以是一个整数值,例如" 100"。
相关方法:setEms(int)
android:enabled
指定是否启用小部件。启用状态的解释因子类而异。例如,未启用的 EditText 会阻止用户编辑包含的文本,而未启用的 Button 会阻止用户点击按钮。如果评估 state_enabled 时引用的可绘制对象不同,则启用和非启用小部件的外观可以不同。
android:fallbackLineSpacing
是否尊重用于显示文本的回退字体的上升和下降。如果为真,最终被使用的后备字体可以增加使用它们的行的上升和下降。
相关方法:setFallbackLineSpacing(boolean)
android:firstBaselineToTopHeight
从 TextView 顶部到第一个文本基线的距离。如果设置,这将覆盖为 paddingTop 设置的值。
相关方法:setFirstBaselineToTopHeight(int)
android:fontFamily
文本的字体系列(由字符串命名或作为字体资源参考)。可以是字符串值,使用 ‘\\;’ 转义 Unicode 字符的字符,例如 ‘\\n’ 或 ‘\\uxxxx’;
相关方法:setTypeface(Typeface)
android:fontFeatureSettings
字体功能设置。可以是字符串值,使用 ‘\\;’ 转义 Unicode 字符的字符,例如 ‘\\n’ 或 ‘\\uxxxx’;
相关方法:setFontFeatureSettings(String)
android:fontVariationSettings
字体变化设置。可以是字符串值,使用 ‘\\;’ 转义 Unicode 字符的字符,例如 ‘\\n’ 或 ‘\\uxxxx’;
相关方法:setFontVariationSettings(String)
android:freezesText
如果设置,除了元数据(例如当前光标位置)之外,文本视图将在其冻结的冰柱内包含其当前完整文本。默认情况下这是禁用的;当文本视图的内容未存储在持久性位置(例如内容提供程序)中时,它会很有用。因为 EditText无论属性值如何,它始终处于启用状态。
相关方法:setFreezesText(boolean)
android:gravity
指定当文本小于视图时如何通过视图的 x 和/或 y 轴对齐文本。
必须是以下常量值中的一个或多个(以"|"分隔)。
Constant | Value | Description |
bottom | 50 | 将对象推到其容器的底部,而不改变其大小。 |
center | 11 | 将对象放置在其容器的垂直和水平轴的中心,不改变其大小。 |
center_horizontal | 1 | 将对象放置在其容器的水平中心,不改变其大小。 |
center_vertical | 10 | 将对象放在其容器的垂直中心,不改变其大小。 |
clip_horizontal | 8 | 可以设置为将子项的左边缘和/或右边缘剪裁到其容器边界的附加选项。剪辑将基于水平重力:左重力将剪辑右边缘,右重力将剪辑左边缘,两者都不会剪辑两个边缘。 |
clip_vertical | 80 | 可以设置为将子项的顶部和/或底部边缘剪裁到其容器边界的附加选项。剪辑将基于垂直重力:顶部重力将剪辑底部边缘,底部重力将剪辑顶部边缘,两者都不会剪辑两个边缘。 |
end | 800005 | 将对象推到其容器的末端,不改变其大小。 |
fill | 77 | 如果需要,增加对象的水平和垂直大小,使其完全填满其容器。 |
fill_horizontal | 7 | 如果需要,增加对象的水平尺寸,使其完全填满其容器。 |
fill_vertical | 70 | 如果需要,增大对象的垂直尺寸,使其完全填满其容器。 |
left | 3 | 将对象推到其容器的左侧,不改变其大小。 |
right | 5 | 将对象推到其容器的右侧,不改变其大小。 |
start | 800003 | 将对象推到其容器的开头,不改变其大小。 |
top | 30 | 将对象推到其容器的顶部,而不改变其大小。 |
相关方法:setGravity(int)
android:height
使 TextView 正好是这个高度。您可以通过在布局参数中指定此数字来获得相同的效果。
相关方法:setHeight(int)
android:hint
当文本为空时显示的提示文本。可以是字符串值,使用 ‘\\;’ 转义 Unicode 字符的字符,例如 ‘\\n’ 或 ‘\\uxxxx’;
相关方法:setHint(int)
android:hyphenationFrequency
自动断字的频率。
必须是以下常量值之一。
Constant | Value | Description |
full | 2 | 标准数量的连字符,对于运行文本和文本空间有限的屏幕很有用。 |
none | 0 | 没有连字符。 |
normal | 1 | 不太频繁的连字符,对于非正式用例很有用,例如聊天消息。 |
相关方法:setHyphenationFrequency(int)
android:imeActionId
提供EditorInfo.actionId 当输入法连接到文本视图时使用的值 。
相关方法:setImeActionLabel(CharSequence,int)
android:imeActionLabel
提供EditorInfo.actionLabel 当输入法连接到文本视图时使用的值 。
相关方法:setImeActionLabel(CharSequence,int)
android:imeOptions
您可以在与编辑器关联的 IME 中启用的其他功能,以改进与您的应用程序的集成。此处的常量对应于由 定义的常量 EditorInfo.imeOptions。
必须是以下常量值中的一个或多个(以"|"分隔)。
Constant | Value | Description |
actionDone | 6 | 操作键执行"完成"操作,关闭软输入法。对应于 。EditorInfo.IME_ACTION_DONE |
actionGo | 2 | 操作键执行"go"操作,将用户带到他们键入的文本的目标。例如,通常在输入 URL 时使用。对应于 。EditorInfo.IME_ACTION_GO |
actionNext | 5 | 操作键执行"下一个"操作,将用户带到将接受文本的下一个字段。对应于 。EditorInfo.IME_ACTION_NEXT |
actionNone | 1 | 此编辑器没有与之关联的操作。对应于 。EditorInfo.IME_ACTION_NONE |
actionPrevious | 7 | 操作键执行"上一个"操作,将用户带到将接受文本的上一个字段。对应于 。EditorInfo.IME_ACTION_PREVIOUS |
actionSearch | 3 | 操作键执行"搜索"操作,将用户带到搜索已键入文本的结果(在任何合适的上下文中)。对应于 。EditorInfo.IME_ACTION_SEARCH |
actionSend | 4 | 操作键执行"发送"操作,将文本传送到其目标。这通常在撰写消息时使用。对应于 。EditorInfo.IME_ACTION_SEND |
actionUnspecified | 0 | 没有与此编辑器相关联的特定操作,如果可以,让编辑器提出自己的操作。对应于 。EditorInfo.IME_NULL |
flagForceAscii | 80000000 | 用于请求输入法能够输入ASCII字符。此标志的目的是确保用户可以在文本视图中键入罗马字母字符,通常用于帐户ID或密码输入。通常情况下,IME可以输入ASCII,即使没有被告知(这样的IME已经在某种意义上尊重了这个标志),但也有可能在某些情况下无法输入ASCII,例如,IME中只启用了阿拉伯语、希腊语、希伯来语、俄语等非ASCII输入语言。应用程序需要意识到这个标志并不是一个保证,并且不是所有的ime都会尊重它。但是,强烈建议IME作者遵守此标志,特别是当他们的IME最终可能处于只启用了非ASCII输入语言的状态时。 对应于EditorInfo.IME_FLAG_FORCE_ASCII。 |
flagNavigateNext | 8000000 | 用于请求输入法能够输入ASCII字符。此标志的目的是确保用户可以在文本视图中键入罗马字母字符,通常用于帐户ID或密码输入。通常情况下,IME可以输入ASCII,即使没有被告知(这样的IME已经在某种意义上尊重了这个标志),但也有可能在某些情况下无法输入ASCII,例如,IME中只启用了阿拉伯语、希腊语、希伯来语、俄语等非ASCII输入语言。应用程序需要意识到这个标志并不是一个保证,并且不是所有的ime都会尊重它。但是,强烈建议IME作者遵守此标志,特别是当他们的IME最终可能处于只启用了非ASCII输入语言的状态时。对应于 EditorInfo.IME_FLAG_NAVIGATE_NEXT。 |
flagNavigatePrevious | 4000000 | 类似于flagNavigateNext,但指定了向后导航可以关注的一些有趣的内容。如果用户选择IME的工具进行向后导航,这将在应用程序中显示为InputConnection.performEditorAction(int)处的actionPrevious。对应于 EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS。 |
flagNoAccessoryAction | 20000000 | 与自定义操作结合使用,这表示当输入法为全屏时,该操作不应作为辅助按钮使用。请注意,通过设置此标志,可以会出现用户根本无法使用该操作的情况。设置此项通常意味着您认为显示正在编辑的文本比您提供的操作更重要。对应于 EditorInfo.IME_FLAG_NO_ACCESSORY_ACTION。 |
flagNoEnterAction | 40000000 | 与自定义操作结合使用,这表示该操作不应作为"回车"键的替代品内联可用。通常这是因为该操作具有如此显着的影响或不可恢复性,因此应避免意外击中它,例如发送消息。请注意,TextView它将在多行文本视图上自动为您设置此标志。对应于 EditorInfo.IME_FLAG_NO_ENTER_ACTION。 |
flagNoExtractUi | 10000000 | 用于指定 IME 不需要显示其提取的文本 UI。对于可以是全屏的输入法,通常在横向模式下,这允许它们更小并让部分应用程序显示在后面。尽管用户对可用应用程序的访问可以会受到限制,但它可以使(主要是)全屏 IME 的体验不那么刺耳。请注意,当指定此标志时,可以无法将IME设置为能够显示文本,因此应仅在不需要的情况下使用它。对应于 EditorInfo.IME_FLAG_NO_EXTRACT |
flagNoFullscreen | 2000000 | 用于请求 IME 永远不要进入全屏模式。应用程序需要知道标志不是保证,并不是所有的 IME 都会尊重它。对应于 EditorInfo.IME_FLAG_NO_FULLSCREEN。 |
flagNoPersonalizedLearning | 1000000 | 用于请求IME不应根据用户在此文本编辑对象上键入的内容更新任何个性化数据,例如键入历史记录和个性化语言模型。典型用例包括: 当应用程序处于特殊模式时,用户的活动预计不会记录在应用程序的历史记录中。有些web浏览器和聊天应用程序可能有这种模式。 存储输入历史记录没有什么意义。在键入游戏时指定此标志可能有助于避免输入历史记录中填充用户在日常生活中键入的单词。另一个例子是,当应用程序已经知道预期的输入不是有效的单词(例如,在任何自然语言中都不是有效的单词的促销代码)。 应用程序需要注意,标志不是保证,有些IME可能不尊重它。 |
normal | 0 | 没有与此编辑器相关联的特殊语义。 |
相关方法:setImeOptions(int)
android:includeFontPadding
为上升和下降留出足够的空间,而不是严格使用字体上升和下降。(通常为真)。
相关方法:setIncludeFontPadding(boolean)
android:inputMethod
如果设置,则指定此 TextView 应使用指定的输入法(由完全限定的类名指定)。
相关方法:setKeyListener(KeyListener)
android:inputType
放置在文本字段中的数据类型,用于帮助输入法决定如何让用户输入文本。此处的常量对应于由 定义的常量 InputType。通常,您可以选择单个值,但也可以按照指示将某些值组合在一起。将此属性设置为除此之外的任何内容 none 也暗示文本是可编辑的。
必须是以下常量值中的一个或多个(以"|"分隔)。
Constant | Value | Description |
date | 14 | 用于输入日期。对应于 InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_DATE. |
datetime | 4 | 用于输入日期和时间。对应于InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_NORMAL. |
none | 0 | 没有内容类型。文本不可编辑。 |
number | 2 | 仅数字字段。对应于InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_NORMAL. |
numberDecimal | 2002 | 可以结合 number以及其他允许使用十进制(小数)数的选项。对应于 InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL. |
numberPassword | 12 | A数字密码字段。对应于InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD. |
numberSigned | 1002 | 可以结合 number以及其他允许签名号码的选项。对应于InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED. |
phone | 3 | 用于输入电话号码。对应于 InputType.TYPE_CLASS_PHONE. |
text | 1 | 只是普通的旧文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL. |
textAutoComplete | 10001 | 可以结合 text及其变体,用于指定此字段将进行自己的自动完成并适当地与输入法对话。对应于InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE. |
textAutoCorrect | 8001 | 可以结合 text及其变体以请求自动更正正在输入的文本。对应于 InputType.TYPE_TEXT_FLAG_AUTO_CORRECT. |
textCapCharacters | 1001 | 可以结合 text及其变体以请求所有字符的大写。对应于InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS. |
textCapSentences | 4001 | 可以结合 text及其变体以要求每个句子的第一个字符大写。对应于InputType.TYPE_TEXT_FLAG_CAP_SENTENCES. |
textCapWords | 2001 | 可以结合 text及其变体,要求每个单词的第一个字符大写。对应于 InputType.TYPE_TEXT_FLAG_CAP_WORDS. |
textEmailAddress | 21 | 将用作电子邮件地址的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS. |
textEmailSubject | 31 | 作为电子邮件主题提供的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT. |
textFilter | b1 | 过滤一些其他数据的文本。对应于 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER. |
textImeMultiLine | 40001 | 可以结合 text及其变体表明虽然常规文本视图不应该是多行,但 IME 应该提供多行(如果可以)。对应于 InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE. |
textLongMessage | 51 | T作为长消息内容的文本。对应于 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE. |
textMultiLine | 20001 | 可以结合 text及其变体以允许字段中的多行文本。如果未设置此标志,则文本字段将被限制为一行。对应于InputType.TYPE_TEXT_FLAG_MULTI_LINE. 注意:如果未设置此标志并且文本字段没有最大长度限制,出于性能原因,框架会自动将字符的最大长度设置为 5000。 |
textNoSuggestions | 80001 | 可以结合 text及其变体,以表明 IME 不应显示任何基于字典的单词建议。对应于 InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS. |
textPassword | 81 | 作为密码的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD. |
textPersonName | 61 | 人名的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSON_NAME. |
textPhonetic | c1 | 用于语音发音的文本,例如联系人条目中的语音姓名字段。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PHONETIC. |
textPostalAddress | 71 | 作为邮寄地址提供的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS. |
textShortMessage | 41 | 作为短消息内容的文本。对应于 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE. |
textUri | 11 | 将用作 URI 的文本。对应于 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI. |
textVisiblePassword | 91 | 应该是可见的密码文本。对应于 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD. |
textWebEditText | a1 | 在 Web 表单中作为文本提供的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT. |
textWebEmailAddress | d1 | 将用作 Web 表单上的电子邮件地址的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS. |
textWebPassword | e1 | 将用作网络表单密码的文本。对应于InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD. |
time | 24 | 为进入时间。对应于InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_TIME. |
相关方法:setRawInputType(int)
android:justificationMode
论证模式。
必须是以下常量值之一。
Constant | Value | Description |
inter_word | 1 | 通过拉伸字间距来对齐。 |
none | 0 | 没有任何理由。 |
android:lastBaselineToBottomHeight
从 TextView 底部到最后一个文本基线的距离。如果设置,这将覆盖为 paddingBottom 设置的值。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
相关方法:setLastBaselineToBottomHeight(int)
android:letterSpacing
文本字母间距。可以是一个浮点值,例如" 1.2"。
相关方法:
setLetterSpacing(float)
android:lineHeight
文本行之间的显式高度。如果设置,这将覆盖为 lineSpacingExtra 和 lineSpacingMultiplier 设置的值。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
相关方法:
setLineHeight(int)
android:lineSpacingExtra
文本行之间的额外间距。该值不会应用于最后一行文本。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
相关方法:setLineSpacing(float,float)
android:lineSpacingMultiplier
文本行之间的额外间距,作为乘数。该值不会应用于最后一行文本。可以是一个浮点值,例如" 1.2"。
相关方法:setLineSpacing(float,float)
android:lines
使 TextView 正好是这么多行高。可以是一个整数值,例如" 100"。
相关方法:setLines(int)
android:linksClickable
如果设置为 false,即使 autoLink 导致找到链接,也不会将移动方法设置为链接移动方法。
可以是一个布尔值,例如 “true"或"false”。
相关方法:setLinksClickable(boolean)
android:marqueeRepeatLimit
重复选取框动画的次数。仅当 TextView 启用了选取框时才应用。
可以是一个整数值,例如" 100"。
必须是以下常量值之一。
Constant | Value | Description |
marquee_forever | ffffffff | 表示选取框应无限期重复。 |
相关方法:setMarqueeRepeatLimit(int)
android:maxEms
使 TextView 最多有这么多 em 宽。可以是一个整数值,例如" 100"。
相关方法:setMaxEms(int)
android:maxHeight
使 TextView 最多有这么多像素高。
可以是一个维度值,它是一个浮点数,附加一个单位,例如" 14.5sp"。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。
相关方法:setMaxHeight(int)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/5c44585024a2a4080796bd82d7536c67.jpeg)
尾声
如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
这里,笔者分享一份从架构哲学的层面来剖析的视频及资料给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
Android进阶学习资料库
一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!
大厂面试真题
PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
《2019-2021字节跳动Android面试历年真题解析》
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
[外链图片转存中…(img-GelJSI1N-1712345610421)]
[外链图片转存中…(img-rKZ0FDoJ-1712345610421)]
[外链图片转存中…(img-IRmoMRpE-1712345610422)]
[外链图片转存中…(img-zyXq98z6-1712345610422)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/5c44585024a2a4080796bd82d7536c67.jpeg)
尾声
如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
这里,笔者分享一份从架构哲学的层面来剖析的视频及资料给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
[外链图片转存中…(img-VsOfv3tv-1712345610422)]
Android进阶学习资料库
一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!
[外链图片转存中…(img-AW2d20Ic-1712345610422)]
大厂面试真题
PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
[外链图片转存中…(img-BFTrE0hR-1712345610422)]
《2019-2021字节跳动Android面试历年真题解析》
[外链图片转存中…(img-7Ammvi27-1712345610423)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!