Android Canvas rotate 和translate 两个方法的研究

本文详细探讨了如何使用Android Canvas的rotate和translate方法创建竖向显示的TextView。通过分析rotate方法的旋转中心以及translate方法对坐标系的影响,解决了控件无法显示的问题。最终通过调整坐标系,成功实现在屏幕左下角显示竖直文本的效果。
摘要由CSDN通过智能技术生成
               

转自:http://www.verydemo.com/demo_c131_i3507.html

首先我们来看这样一个需求:显示一个竖向显示的TextView。说白了,就是把我们日常使用的TextView让丫的旋转90度。

怎么样?是不是很多人会说这有什么难得嘛,不就是用canvas让丫的旋转90度嘛。

别急,我们一点点引申。

对于很多没有接触过太多游戏开发的android程序员或者接触应用开发不久的程序员(我这样的)来说,或许都听过canvas这个东西,

也都知道这个东西有一个rotate()方法,也知道这个方法可”好像“以让”画布“旋转。

好的,我们先跟着上面的思路来走一下,看一看。

看下面的代码:

  1. public class MyTextView extends TextView {  
  2.   
  3.     public MyTextView(Context context, AttributeSet attrs) {  
  4.         super(context, attrs);  
  5.     }  
  6.   
  7.     @Override  
  8.     protected void onDraw(Canvas canvas) {  
  9.         canvas.rotate(-90);  
  10.         super.onDraw(canvas);  
  11.     }  
  12. }  
看起来好像是我们在绘制TextView之前把画布逆时针旋转了90度是么?那么是不是说我们得到的就是一个竖向的TextView了呢?

布局文件很简单:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值