Advertisement

Android中定制TextView使drawableLeft内容居中

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本篇文章主要讲解了如何在Android开发中自定义TextView,让drawableLeft属性中的图片或图标实现垂直居中的方法和步骤。 在Android开发过程中,实现TextView的drawableLeft内容居中的效果是一个常见的需求。为了解决这个问题,我们可以创建一个自定义TextView组件来达到这一目的。 首先,我们需要编写一个新的类继承于TextView,并将其命名为DrawableCenterTextView。在这个新的类中,我们将重写onDraw方法以支持drawableLeft与文本一起居中显示的功能。 在onDraw方法内,通过获取drawableLeft的宽度和高度信息,并结合文字本身的尺寸计算出整体内容需要居中的位置。接着使用canvas.translate来调整绘制起点的位置,从而实现两者一同居中展示的效果。 以下是DrawableCenterTextView类的具体代码: ```java public class DrawableCenterTextView extends TextView { public DrawableCenterTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public DrawableCenterTextView(Context context, AttributeSet attrs) { super(context, attrs); } public DrawableCenterTextView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { // 获取当前组件的drawableLeft Drawable[] drawables = getCompoundDrawables(); if (drawables != null && drawables[0] != null) { float textWidth = getPaint().measureText(getText().toString()); int drawablePadding = getCompoundDrawablePadding(); int drawableWidth = 0; // 获取drawableLeft的宽度 drawableWidth = drawables[0].getIntrinsicWidth(); // 计算整体内容需要居中的位置 float bodyWidth = textWidth + drawableWidth + drawablePadding; // 调整绘制起点的位置,实现两者一同居中展示的效果 canvas.translate((getWidth() - bodyWidth) / 2, 0); } super.onDraw(canvas); } } ``` 在XML布局文件里使用这个自定义的TextView组件: ```xml ``` 这样,我们就可以实现TextView的drawableLeft内容居中的效果了。通过这种方式,我们可以灵活地控制文本与图标的显示位置,在Android应用开发中具有很高的实用价值。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • AndroidTextView使drawableLeft
    优质
    本篇文章主要讲解了如何在Android开发中自定义TextView,让drawableLeft属性中的图片或图标实现垂直居中的方法和步骤。 在Android开发过程中,实现TextView的drawableLeft内容居中的效果是一个常见的需求。为了解决这个问题,我们可以创建一个自定义TextView组件来达到这一目的。 首先,我们需要编写一个新的类继承于TextView,并将其命名为DrawableCenterTextView。在这个新的类中,我们将重写onDraw方法以支持drawableLeft与文本一起居中显示的功能。 在onDraw方法内,通过获取drawableLeft的宽度和高度信息,并结合文字本身的尺寸计算出整体内容需要居中的位置。接着使用canvas.translate来调整绘制起点的位置,从而实现两者一同居中展示的效果。 以下是DrawableCenterTextView类的具体代码: ```java public class DrawableCenterTextView extends TextView { public DrawableCenterTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public DrawableCenterTextView(Context context, AttributeSet attrs) { super(context, attrs); } public DrawableCenterTextView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { // 获取当前组件的drawableLeft Drawable[] drawables = getCompoundDrawables(); if (drawables != null && drawables[0] != null) { float textWidth = getPaint().measureText(getText().toString()); int drawablePadding = getCompoundDrawablePadding(); int drawableWidth = 0; // 获取drawableLeft的宽度 drawableWidth = drawables[0].getIntrinsicWidth(); // 计算整体内容需要居中的位置 float bodyWidth = textWidth + drawableWidth + drawablePadding; // 调整绘制起点的位置,实现两者一同居中展示的效果 canvas.translate((getWidth() - bodyWidth) / 2, 0); } super.onDraw(canvas); } } ``` 在XML布局文件里使用这个自定义的TextView组件: ```xml ``` 这样,我们就可以实现TextView的drawableLeft内容居中的效果了。通过这种方式,我们可以灵活地控制文本与图标的显示位置,在Android应用开发中具有很高的实用价值。
  • Flutter使Text显示
    优质
    本文将详细介绍如何在Flutter框架下实现文本内容的垂直和水平居中显示,帮助开发者轻松美化应用界面。 通过将textAlign属性的值设置为TextAlign.center可以让文本内容居中。例如: ```dart class _MyHomePageState extends State { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Row( children: [ Expanded( ``` 这段代码展示了如何在Dart语言中使用Flutter框架使文本居中显示。
  • Android实现文字和图片在自TextView的方法
    优质
    本篇文章主要介绍如何在Android开发中,在自定义的TextView组件内同时显示文字与图片,并使它们水平居中对齐的方法。 下面为大家分享一篇关于在Android中自定义TextView以实现文字与图片居中的方法,该文章具有很好的参考价值,希望能对大家有所帮助。一起跟随下文详细了解吧。
  • AndroidTextView带有圆角和背景色
    优质
    本篇文章详细介绍如何在Android开发中自定义TextView组件,实现添加圆角及设置背景颜色的功能。适合中级开发者阅读。 在Android开发中,如果需要创建带圆角并且具有不同背景颜色的TextView,并且使用XML文件实现的话会非常繁琐,因为每种不同的颜色都需要单独编写一个XML文件。为了简化这个过程,我决定自己创建了一个自定义控件。通过设置一些属性就可以轻松地达到想要的效果。
  • Android义Dialog的显示
    优质
    本篇文章将详细介绍在Android开发过程中如何自定义Dialog的显示内容,包括布局、样式和交互方式等。通过实例代码展示具体实现方法。 Android自定义显示内容的Dialog有两种实现方式:一种是继承Dialog类,另一种是继承PopupWindow类。
  • 在Fragment获取和修改父Activity的TextView
    优质
    本文章介绍了如何在Android开发过程中,在Fragment内访问并修改其宿主Activity中的TextView的内容的方法与技巧。 Fragment 获取父 Activity 的 TextView 控件并修改内容。这是一个示例,简单实现了 Fragment 和 Activity 之间的交互。
  • Android自动滚动的TextView
    优质
    本段介绍如何在Android开发中实现并控制TextView组件中的文本内容自动滚动显示的效果,适用于长文本或持续更新消息展示。 Android中的自动滚动TextView在源码中有两个自定义的版本:一个用于上下方向的自动滚动,另一个则适用于左右方向的自动滚动。使用这些组件非常便捷。
  • uni-appuni-popup的弹出
    优质
    本文将详细介绍在uni-app框架下如何自定义和使用uni-popup组件来创建各种类型的弹窗效果,包括对话框、提示框等。 在uni-app项目中自定义使用uni-popup组件,并在其内部包含picker-view组件。该组件能够根据传入的list数据渲染选择列表并支持回填数据。 调用方式如下:
  • Android实现可变圆角边框的自TextView
    优质
    本文章介绍了如何在Android开发中创建一个具有动态调整圆角效果的自定义TextView组件,为开发者提供了详细的技术指导和代码示例。 自定义TextView以包含边框功能,并支持动态更改边框颜色及字体颜色。此外,还可以设置圆角效果。
  • Android实现自义竖排TextView的实例分析
    优质
    本篇文章详细介绍了在Android开发中如何创建和使用一个自定义的竖向文本显示组件(VerticalTextView),包括代码示例与实现原理。适合初学者参考学习。 本段落主要介绍了Android自定义竖排TextView的实现方法及相关资料,供需要的朋友参考。