需求:使TextView中的文字倾斜一定的角度。如下图所示:

如何实现呢?自定义View?这可能是大多数同学产生的第一个想法。的确,自定义View可以实现这个需求。我也找过网上自定义view的方法,大多数只是继承TextView,在onDraw()方法中将画布旋转:

@Override

protected void onDraw(Canvas canvas) {

canvas.save();

canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop());

canvas.rotate(degrees, this.getWidth() / 2f, this.getHeight() / 2f);

// canvas.rotate(degrees, 0, 0);

super.onDraw(canvas);

canvas.restore();

}

其中canvas.rotate(degrees, this.getWidth() / 2f, this.getHeight() / 2f);方法中degrees就是需要旋转的角度。

今天介绍一种更简单的方法:

View中有一个属性:rotation,可以实现旋转View。因为TextView是继承的View,所以也可以使用这个属性。

XML中设置

android:rotation="45"

java代码中设置

mTextView.setRotation(45);

View的相关源码:

/**

* Sets the degrees that the view is rotated around the pivot point. Increasing values

*设置视图围绕轴心点旋转的度数。

* result in clockwise rotation.

*顺时针旋转

* @param rotation The degrees of rotation.旋转的角度。

* @see #getRotation()

* @see #getPivotX()

* @see #getPivotY()

* @see #setRotationX(float)

* @see #setRotationY(float)

*

* @attr ref android.R.styleable#View_rotation

*/

public void setRotation(float rotation) {

if (rotation != getRotation()) {

// Double-invalidation is necessary to capture view's old and new areas

invalidateViewProperty(true, false);

mRenderNode.setRotation(rotation);

invalidateViewProperty(false, true);

invalidateParentIfNeededAndWasQuickRejected();

notifySubtreeAccessibilityStateChangedIfNeeded();

}

}

其实,其他继承View的控件都可以使用这个属性进行旋转。并不影响自身的点击事件。

android 文字倾斜,TextView中文本倾斜相关推荐

  1. android 获取布局textview,android – 获取TextView中文本的位置

    看看几个Paint方法: getTextBounds()和 measureText.我们可以使用它们来确定TextView中文本的偏移量.确定TextView中的偏移后,我们可以将其添加到TextVi ...

  2. android textview坐标,android – 获取TextView中文本的位置

    看看几个Paint方法: getTextBounds()和 measureText.我们可以使用它们来确定TextView中文本的偏移量.确定TextView中的偏移后,我们可以将其添加到TextVi ...

  3. TextView 中文本内容换行

    一.实现TextView中文本换行 1.在res/valus/string.xml  中定义字符串,字符串中添加\n就可以实现换行. 2.解析来自服务端的xml文件,出现在xml文件中含有\n的文本, ...

  4. android 文本框输入 默认文字居中,Android系统。 TextView中的文本垂直居中

    我有一个ViewGroup类,它可以添加自定义视图并在画布上绘制饼图.在圆圈的中心,我有一个TextView.但无论我做什么,我都无法将TextView中的文本垂直居中. 在这种情况下,Root视图是 ...

  5. android textview 文字居中无效,android – 不能垂直居中textview的文本

    [已解决]我不得不向ScrollView添加 android:fillViewport ="true",修复了文本没有垂直居中的问题. 我知道之前已经多次回答,但我仍然无法垂直居中 ...

  6. Android 在同一个TextView中展示不同颜色、不同字体大小

    同一个TextView中展示不同颜色 xml代码片段 <androidx.appcompat.widget.AppCompatTextViewandroid:id="@+id/tang ...

  7. android textview图片,Android如何在TextView中显示图片

    大家好,今天和大家分享如何在TextView中加入图片的功能,有两种方式,第一种是继承TextView实现图片通过重写来实现图片的显示功能,第二种是利用现成的api实现图片的显示功能.我们知道Text ...

  8. Android之如何设置TextView中不同字段的字体颜色

    在这里先看看效果图: OK,有时候,在我们的项目中会要求TextView中文本有一部分的字体颜色不一样,这时我们应该使用 SpannableStringBuilder这个工具类,当然这个类的功能很强大 ...

  9. 一起学android之怎样设置TextView中不同字段的字体颜色(22)

    在这里先看看效果图: OK,有时候,在我们的项目中会要求TextView中文本有一部分的字体颜色不一样.这时我们应该使用 SpannableStringBuilder这个工具类,当然这个类的功能非常强 ...

最新文章

  1. URLEncoder和URLDecoder中特殊字符的处理方案 URL传值问题
  2. 信标组的磁标安装长度
  3. 用python画爱心-python画一个玫瑰和一个爱心
  4. C++ string清空并释放内存空间的两种方法(shrink_to_fit()、swap())
  5. 如何在终端下截取一个完整长度的网页截图
  6. 毕业论文管理系统——面向对象方法
  7. (转)深入理解Java的接口和抽象类
  8. 无法定位程序输入点 InitializeCriticalSectionEx 于动态链接库 Kernel32.dll 上 问题解决方法
  9. 被知乎反杀,是一种什么体验?
  10. SNMP Trap调试记录
  11. 数学分析典型方法pdf下载_硬质合金刀具常识及使用方法 pdf下载 0700
  12. wav转换mp3简单图文教程
  13. python实现Content-Type:application/octet-stream
  14. 微信开放平台修改微信分享的小图标后,移动端显示的分享的小图标未改变的问题解决
  15. QT: Linux下-错误提示cannot find -lGL
  16. 前端程序员的日常与心酸
  17. 电视行业迎来市场“拐点” TCL曲面电视表现最为抢眼
  18. 亲测绝对有用,,电脑不显示可连接WiFi列表,无法连接WiFi的解决办法。
  19. openssl 交叉编译 armv7内核
  20. InfiniBand 网络

热门文章

  1. 拆掉思维里的墙读书笔记
  2. Python使用tkinter库制作带有Laber标签、Entry文本框、Progressbar进度条、text日志框等元素的GUI操作界面
  3. ctfshow密码easyrsa5
  4. python tensorflow车型识别(一):建立数据
  5. 【工欲善其事必先利其器】论文编辑及文献管理(Endnote,Latex,JabRef ,overleaf)资源下载及使用指南
  6. Windows 10 运行python弹出windows应用商店
  7. 矩阵关于26的模逆matlab,给定加密矩阵在模运算下的逆矩阵.ppt
  8. windows server 2016 活动目录部署系列(十一)AD域控上安装证书服务器
  9. [转载] 支持支付宝付款的四大国外主机
  10. 2022-2028全球房地产众筹平台行业调研及趋势分析报告