TextView 常用方法与示例

253 阅读11分钟

TextView是Android中最常用的UI组件之一,用于在应用程序中显示文本。它提供了一些公开方法来设置和操作文本的显示方式。以下是一些常用的公开方法和它们的功能,以及示例代码:

1. setText(CharSequence text)

功能:设置文本内容。

示例:


TextView textView = new TextView(this);

textView.setText("Hello World!");

2. setText(int resId)

功能:设置文本内容为字符串资源。

示例:


TextView textView = new TextView(this);

textView.setText(R.string.hello_world);

3. setTextColor(int color)

功能:设置文本颜色。

示例:


TextView textView = new TextView(this);

textView.setTextColor(Color.RED);

4. setTextSize(float size)

功能:设置文本字体大小。

示例:


TextView textView = new TextView(this);

textView.setTextSize(20);

5. setTypeface(Typeface typeface)

功能:设置字体样式。

示例:


TextView textView = new TextView(this);

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");

textView.setTypeface(typeface);

6. setGravity(int gravity)

功能:设置文本的对齐方式。

示例:


TextView textView = new TextView(this);

textView.setGravity(Gravity.CENTER);

7. setLines(int lines)

功能:设置文本显示的行数。

示例:


TextView textView = new TextView(this);

textView.setLines(3);

8. setLineSpacing(float spacingMultiplier, float additionalSpacing)

功能:设置行间距。第一个参数是乘数,第二个参数是额外的间距。

示例:


TextView textView = new TextView(this);

textView.setLineSpacing(1.2f, 10);

9. setMovementMethod(MovementMethod movementMethod)

功能:设置文本可以滚动的方式。

示例:


TextView textView = new TextView(this);

textView.setMovementMethod(ScrollingMovementMethod.getInstance());

10. setSelected(boolean selected)

功能:设置是否选中TextView。

示例:


TextView textView = new TextView(this);

textView.setSelected(true);

11. setEditable(boolean editable)

功能:设置是否可编辑。

示例:


TextView textView = new TextView(this);

textView.setEditable(false);

12. setBackgroundColor(int color)

功能:设置背景颜色。

示例:


TextView textView = new TextView(this);

textView.setBackgroundColor(Color.BLUE);

13. setBackgroundResource(int resId)

功能:设置背景图片资源。

示例:


TextView textView = new TextView(this);

textView.setBackgroundResource(R.drawable.background_image);

14. setBackground(Drawable background)

功能:设置背景图片。

示例:


TextView textView = new TextView(this);

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.background_image);

Drawable d = new BitmapDrawable(getResources(), bitmap);

textView.setBackground(d);

15. setLayoutParams(LayoutParams layoutParams)

功能:设置布局参数。

示例:


TextView textView = new TextView(this);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

textView.setLayoutParams(layoutParams);

16. setPadding(int left, int top, int right, int bottom)

功能:设置内边距。

示例:


TextView textView = new TextView(this);

textView.setPadding(10, 20, 30, 40);

17. setTextAlignment(int alignment)

功能:设置文本对齐方式。

示例:


TextView textView = new TextView(this);

textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

18. setHorizontalFadingEdgeEnabled(boolean enabled)

功能:设置是否显示水平滚动条。

示例:


TextView textView = new TextView(this);

textView.setHorizontalFadingEdgeEnabled(true);

19. setVerticalFadingEdgeEnabled(boolean enabled)

功能:设置是否显示垂直滚动条。

示例:


TextView textView = new TextView(this);

textView.setVerticalFadingEdgeEnabled(true);

20. setFadingEdgeLength(int length)

功能:设置滚动条的长度。

示例:

TextView textView = new TextView(this);
textView.setFadingEdgeLength(50);

21. setShadowLayer(float radius, float dx, float dy, int color)

功能:设置文本的阴影效果。

示例:

TextView textView = new TextView(this);
textView.setShadowLayer(2.0f, 0.0f, 0.0f, Color.BLACK);

22. setElegantTextHeight(boolean elegant)

功能:设置是否启用优雅的文本高度。

示例:

TextView textView = new TextView(this);
textView.setElegantTextHeight(true);

23. setLetterSpacing(float letterSpacing)

功能:设置字母间的间距。

示例:

TextView textView = new TextView(this);
textView.setLetterSpacing(1.0f);

24. setAutoLinkMask(int mask)

功能:自动将URL、电话号码等链接识别为可点击的链接。

示例:

TextView textView = new TextView(this);
textView.setAutoLinkMask(Linkify.ALL);

25. setLinksClickable(boolean clickable)

功能:设置是否可以点击链接。

示例:

TextView textView = new TextView(this);
textView.setLinksClickable(true);

26. setMovementMethod(LinkMovementMethod movementMethod)

功能:设置文本可以点击链接的方式。

示例:

TextView textView = new TextView(this);
textView.setMovementMethod(LinkMovementMethod.getInstance());

27. setTextToHtml(String html)

功能:将HTML格式的文本转换为TextView显示的文本。

示例:

TextView textView = new TextView(this);
textView.setTextToHtml("<font color='red'>Hello World!</font>");

28. setText(CharSequence text, TextView.BufferType bufferType)

功能:设置文本内容,并指定缓冲类型。

示例:

TextView textView = new TextView(this);
textView.setText(Html.fromHtml("<font color='red'>Hello World!</font>"), TextView.BufferType.SPANNABLE);

29. setInputMethodMode(int mode)

功能:设置输入模式。

示例:

TextView textView = new TextView(this);
textView.setInputMethodMode(InputMethodMode.atsch盘中用餐);

30. set箍灵力requestFocus()

功能:请求焦点。

示例:

TextView textView = new TextView(this);
textView.requestFocus();

31. setSelected(boolean selected)

功能:设置是否被选中。

示例:

TextView textView = new TextView(this);
textView.setSelected(true);

32. setLines(int lines)

功能:设置显示的行数。

示例:

TextView textView = new TextView(this);
textView.setLines(5);

33. setLineSpacing(float spacingMultiplier, float additionalSpacing)

功能:设置行间距。第一个参数是乘数,第二个参数是额外的间距。

示例:

TextView textView = new TextView(this);
textView.setLineSpacing(1.2f, 10);

34. setMinimumWidth(int minWidht)

功能:设置最小宽度。

示例:

TextView textView = new TextView(this);
textView.setMinimumWidth(100);

35. setMinimumHeight(int minHeight)

功能:设置最小高度。

示例:

TextView textView = new TextView(this);
textView.setMinimumHeight(50);

36. setElegantTextHeight(boolean elegant)

功能:设置是否启用优雅的文本高度。

示例:

TextView textView = new TextView(this);
textView.setElegantTextHeight(true);

37. setTextSize(int unit, float size)

功能:设置文本字体大小,第一个参数是单位(例如:TypedValue.COMPLEX_UNIT_SP 表示 scaled pixels)。

示例:

TextView textView = new TextView(this);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);

38. setTypeface(Typeface typeface)

功能:设置字体样式。

示例:

TextView textView = new TextView(this);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
textView.setTypeface(typeface);

39. setTypeface(Typeface typeface, int style)

功能:设置字体样式和风格。

示例:

TextView textView = new TextView(this);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/myfont.ttf");
textView.setTypeface(typeface, Typeface.BOLD_ITALIC);

40. setHintTextColor(int color)

功能:设置提示文本的颜色。

示例:

TextView textView = new TextView(this);
textView.setHintTextColor(Color.RED);

41. setHintTextColor(ColorStateList color)

功能:设置提示文本的颜色,根据不同的状态(例如:焦点、不可见、选中)使用不同的颜色。

示例:

TextView textView = new TextView(this);
ColorStateList colorStateList = new ColorStateList(new int[][]{{0, Color.RED}, {-1, Color.BLUE}}, new int[]{Color.RED, Color.BLUE});
textView.setHintTextColor(colorStateList);

42. setCursorVisible(boolean visible)

功能:设置光标是否可见。

示例:

TextView textView = new TextView(this);
textView.setCursorVisible(true);

43. setKeyListener(KeyListener listener)

功能:设置键盘监听器,用于处理用户输入。

示例:

TextView textView = new TextView(this);
textView.setKeyListener(DigitsKeyListener.getInstance());

44. setRawInputType(int type)

功能:设置原始输入类型,用于处理特殊输入(例如:数字、密码等)。

示例:

TextView textView = new TextView(this);
textView.setRawInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

45. setInputType(int type)

功能:设置输入类型,用于处理用户输入。

示例:

TextView textView = new TextView(this);
textView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

46. setFilters(InputFilter[] filters)

功能:设置输入过滤器,用于对用户输入进行校验和转换。

示例:

TextView textView = new TextView(this);
InputFilter[] filters = new InputFilter[]{new InputFilter.LengthFilter(10)};
textView.setFilters(filters);

47. setInputFilter(InputFilter filter)

功能:设置输入过滤器。

示例:

TextView textView = new TextView(this);
InputFilter filter = new InputFilter.LengthFilter(10);
textView.setInputFilter(filter);

48. setImeOptions(int imeOptions)

功能:设置输入法提示选项。

示例:

TextView textView = new TextView(this);
textView.setImeOptions(EditorInfo.IME_ACTION_DONE);

49. setImeActionLabel(CharSequence label, int actionId)

功能:设置输入法提示的操作标签和动作ID。

示例:

TextView textView = new TextView(this);
textView.setImeActionLabel("完成", EditorInfo.IME_ACTION_DONE);

50. setInputExtras(int type, Bundle extras)

功能:为输入类型设置额外的数据。

示例:

TextView textView = new TextView(this);
Bundle bundle = new Bundle();
bundle.putInt("inputType", InputType.TYPE_CLASS_TEXT);
textView.setInputExtras(InputType.TYPE_CLASS_TEXT, bundle);

51. setTransformationMethod(TransformationMethod method)

功能:设置文本转换方法。

示例:

TextView textView = new TextView(this);
textView.setTransformationMethod(new PasswordTransformationMethod());

52. setGravity(int gravity)

功能:设置文本的对齐方式和布局方式。

示例:

TextView textView = new TextView(this);
textView.setGravity(Gravity.CENTER);

53. setTextAlignment(int alignment)

功能:设置文本的对齐方式。

示例:

TextView textView = new TextView(this);
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);

54. setAutoLinkMask(int mask)

功能:设置自动链接的类型。

示例:

TextView textView = new TextView(this);
textView.setAutoLinkMask(Linkify.ALL);

55. setLinkTextColor(int color)

功能:设置链接文本的颜色。

示例:

TextView textView = new TextView(this);
textView.setLinkTextColor(Color.RED);

56. setLinkTextColor(ColorStateList color)

功能:设置链接文本的颜色,根据不同的状态使用不同的颜色。

示例:

TextView textView = new TextView(this);
ColorStateList colorStateList = new ColorStateList(new int[][]{{0, Color.RED}, {-1, Color.BLUE}}, new int[]{Color.RED, Color.BLUE});
textView.setLinkTextColor(colorStateList);

57. setDrawables(int resId)

功能:设置可绘制图片的资源ID。

示例:

TextView textView = new TextView(this);
textView.setDrawables(R.drawable.ic_launcher);

58. setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom)

功能:设置文本左右两边的图标,并设置图标的边界。

示例:

TextView textView = new TextView(this);
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_launcher, 0, 0, 0);

59. setCompoundDrawablePadding(int pad)

功能:设置文本左右两边的图标间距。

示例:

TextView textView = new TextView(this);
textView.setCompoundDrawablePadding(10);

60. setCompoundDrawablePadding(int left, int top, int right, int bottom)

功能:设置文本左右两边的图标间距和边界。

示例:

TextView textView = new TextView(this);
textView.setCompoundDrawablePadding(10, 20, 30, 40);

61. setCompoundDrawablePadding(Drawable drawable)

功能:设置文本左右两边的图标和Drawable对象,并设置图标的边界。

示例:

Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
TextView textView = new TextView(this);
textView.setCompoundDrawablePadding(drawable);

62. setCompoundDrawablePadding(Drawable left, Drawable top, Drawable right, Drawable bottom)

功能:设置文本左右两边的图标和Drawable对象,并设置图标的边界。

示例:

Drawable left = getResources().getDrawable(R.drawable.ic_launcher);
Drawable top = null;
Drawable right = null;
Drawable bottom = null;
TextView textView = new TextView(this);
textView.setCompoundDrawablePadding(left, top, right, bottom);

63. setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)

功能:设置文本左右两边的图标。

示例:

Drawable left = getResources().getDrawable(R.drawable.ic_launcher);
Drawable top = null;
Drawable right = null;
Drawable bottom = null;
TextView textView = new TextView(this);
textView.setCompoundDrawables(left, top, right, bottom);

64. setCompoundDrawablesRelative(Drawable start, Drawable top, Drawable end, Drawable bottom)

功能:设置文本左右两边的图标,以相对位置排列。

示例:

Drawable start = getResources().getDrawable(R.drawable.ic_launcher);
Drawable top = null;
Drawable end = null;
Drawable bottom = null;
TextView textView = new TextView(this);
textView.setCompoundDrawablesRelative(start, top, end, bottom);

65. setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom)

功能:设置文本左右两边的图标,并设置图标的边界。

示例:

TextView textView = new TextView(this);
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_launcher, 0, 0, 0);

66. setCompoundDrawableTint(int tint)

功能:设置图标的颜色滤镜。

示例:

TextView textView = new TextView(this);
textView.setCompoundDrawableTint(Color.RED);

67. setCompoundDrawableTintList(ColorStateList tint)

功能:设置图标的颜色滤镜,根据不同的状态使用不同的颜色滤镜。

示例:

TextView textView = new TextView(this);
ColorStateList tintStateList = new ColorStateList(new int[][]{{0, Color.RED}, {-1, Color.BLUE}}, new int[]{Color.RED, Color.BLUE});
textView.setCompoundDrawableTintList(tintStateList);

68. setCompoundDrawableTintMode(PorterDuff.Mode tintMode)

功能:设置图标的颜色滤镜模式。

示例:

TextView textView = new TextView(this);
textView.setCompoundDrawableTintMode(PorterDuff.Mode.SRC_OVER);

69. setCompoundDrawableTintList(Drawable drawable, ColorStateList tint)

功能:设置图标的颜色滤镜,根据不同的状态使用不同的颜色滤镜。

示例:

Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
ColorStateList tintStateList = new ColorStateList(new int[][]{{0, Color.RED}, {-1, Color.BLUE}}, new int[]{Color.RED, Color.BLUE});
TextView textView = new TextView(this);
textView.setCompoundDrawableTintList(drawable, tintStateList);

70. setCompoundDrawableSize(int width, int height)

功能:设置图标的尺寸。

示例:

TextView textView = new TextView(this);
textView.setCompoundDrawableSize(50, 50);

71. setTextSelectHandle(int resId)

功能:设置文本选择手柄的资源ID。

示例:

TextView textView = new TextView(this);
textView.setTextSelectHandle(R.drawable.ic_launcher);

72. setTextSelectHandle(Drawable drawable)

功能:设置文本选择手柄的Drawable对象。

示例:

Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
TextView textView = new TextView(this);
textView.setTextSelectHandle(drawable);

73. setTextSelectHandle(int left, int top, int right, int bottom)

功能:设置文本选择手柄的位置和边界。

示例:

TextView textView = new TextView(this);
textView.setTextSelectHandle(10, 20, 30, 40);

74. setTextDismissHandle(int resId)

功能:设置文本取消手柄的资源ID。

示例:

TextView textView = new TextView(this);
textView.setTextDismissHandle(R.drawable.ic_launcher);

75. setTextDismissHandle(Drawable drawable)

功能:设置文本取消手柄的Drawable对象。

示例:

Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
TextView textView = new TextView(this);
textView.setTextDismissHandle(drawable);

76. setTextDismissHandle(int left, int top, int right, int bottom)

功能:设置文本取消手柄的位置和边界。

示例:

TextView textView = new TextView(this);
textView.setTextDismissHandle(10, 20, 30, 40);

77. setTextSize(int sizeType, float textSize)

功能:设置文本字体的大小,sizeType参数为字体大小类型,可以是SP、PX、DP等单位。

示例:

TextView textView = new TextView(this);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);

78. setTextLocale(Locale locale)

功能:设置文本的区域设置信息。

示例:

TextView textView = new TextView(this);
textView.setTextLocale(Locale.CHINA);

79. setTextDirection(int textDirection)

功能:设置文本的方向,可以是RTL或LTR。

示例:

TextView textView = new TextView(this);
textView.setTextDirection(View.TEXT_DIRECTION_RTL);

80. setFreezesText(boolean freezesText)

功能:设置是否冻结文本,如果设置为true,则文本内容将不会在内部缓存中被清除。

示例:

TextView textView = new TextView(this);
textView.setFreezesText(true);

81. setCursorVisible(boolean visible)

功能:设置光标是否可见。

示例:

TextView textView = new TextView(this);
textView.setCursorVisible(true);

82. setCursorVisible(boolean visible, boolean restart)

功能:设置光标是否可见,如果restart参数为true,则光标位置会重新启动。

示例:

TextView textView = new TextView(this);
textView.setCursorVisible(true, true);

83. setKeyListener(KeyListener listener)

功能:设置键盘监听器。

示例:

TextView textView = new TextView(this);
textView.setKeyListener(KeyListener.NULL);

84. setInputMethod(InputMethodManager imm, EditorInfo info)

功能:设置输入方法,需要配合InputMethodManager使用。

示例:

TextView textView = new TextView(this);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
EditorInfo info = new EditorInfo();
info.inputType = EditorInfo.TYPE_CLASS_TEXT;
textView.setInputMethod(imm, info);

85. setInputMethodMode(int mode)

功能:设置输入模式的状态。

示例:

TextView textView = new TextView(this);
textView.setInputMethodMode(EditorInfo.IME_MODE_NORMAL);

86. setRawInputMethod(boolean show)

功能:设置是否显示原始输入方法。

示例:

TextView textView = new TextView(this);
textView.setRawInputMethod(true);

87. setRawInputType(int type)

功能:设置原始输入类型。

示例:

TextView textView = new TextView(this);
textView.setRawInputType(EditorInfo.TYPE_CLASS_TEXT);

88. setRawInputType(int type, boolean restart)

功能:设置原始输入类型,如果restart参数为true,则输入方法会重新启动。

示例:

TextView textView = new TextView(this);
textView.setRawInputType(EditorInfo.TYPE_CLASS_TEXT, true);

89. setImeOptions(int imeOptions)

功能:设置输入法提示选项。

示例:

TextView textView = new TextView(this);
textView.setImeOptions(EditorInfo.IME_ACTION_DONE);

90. setImeOptions(int imeOptions, boolean restart)

功能:设置输入法提示选项,如果restart参数为true,则输入法会重新启动。

示例:

TextView textView = new TextView(this);
textView.setImeOptions(EditorInfo.IME_ACTION_DONE, true);

91. setImeActionLabel(CharSequence label, int actionId)

功能:设置输入法操作的标签和ID。

示例:

TextView textView = new TextView(this);
textView.setImeActionLabel(getString(R.string.label), EditorInfo.IME_ACTION_DONE);

92. setImeActionLabel(CharSequence label, int actionId, boolean explicit)

功能:设置输入法操作的标签和ID,并指定是否明确指定操作。

示例:

TextView textView = new TextView(this);
textView.setImeActionLabel(getString(R.string.label), EditorInfo.IME_ACTION_DONE, true);

93. setInputExtras(int xmlResId)

功能:设置输入法的额外信息,xmlResId参数为额外信息的XML资源ID。

示例:

TextView textView = new TextView(this);
textView.setInputExtras(R.xml.input_extras);

94. setInputExtras(Bundle bundle)

功能:设置输入法的额外信息,bundle参数为额外信息的Bundle对象。

示例:

TextView textView = new TextView(this);
Bundle bundle = new Bundle();
bundle.putString("extra_key", "extra_value");
textView.setInputExtras(bundle);

95. setError(CharSequence error)

功能:设置文本的错误信息。

示例:


TextView textView = new TextView(this);

textView.setError("Error Message");

96. setError(Drawable drawable)

功能:设置文本的错误Drawable对象。

示例:


Drawable drawable = getResources().getDrawable(R.drawable.error_drawable);

TextView textView = new TextView(this);

textView.setError(drawable);

97. setError(CharSequence error, Drawable drawable)

功能:设置文本的错误信息和Drawable对象。

示例:


Drawable drawable = getResources().getDrawable(R.drawable.error_drawable);

TextView textView = new TextView(this);

textView.setError("Error Message", drawable);