竖排文字控件:

package com.howfun.test;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.view.Gravity;import android.widget.TextView;public class VerticalTextView extends TextView{ final boolean topDown; public VerticalTextView(Context context, AttributeSet attrs){   super(context, attrs);   final int gravity = getGravity();   if(Gravity.isVertical(gravity) && (gravity&Gravity.VERTICAL_GRAVITY_MASK) == Gravity.BOTTOM) {    setGravity((gravity&Gravity.HORIZONTAL_GRAVITY_MASK) | Gravity.TOP);    topDown = false;   }else    topDown = true; } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){   super.onMeasure(heightMeasureSpec, widthMeasureSpec);   setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth()); } @Override protected boolean setFrame(int l, int t, int r, int b){   return super.setFrame(l, t, l+(b-t), t+(r-l)); } @Override public void draw(Canvas canvas){   if(topDown){    canvas.translate(getHeight(), 0);    canvas.rotate(90);   }else {    canvas.translate(0, getWidth());    canvas.rotate(-90);   }   canvas.clipRect(0, 0, getWidth(), getHeight(), android.graphics.Region.Op.REPLACE);   super.draw(canvas); }}


这样使用来实现文字靠左靠上对齐:



  <com.howfun.test.VerticalTextView    android:layout_width="450dp"    android:layout_height="450dp"    android:textSize="40sp"    android:layout_marginLeft="100dp"    android:gravity="bottom|right"    android:text="Vertical text"    /> 

更多相关文章

  1. 项目中那些事|控件之TextView
  2. 相对布局属性
  3. [android]控件Button常用属性
  4. Android相对布局属性全集
  5. 文字跑马灯
  6. android属性
  7. android中点击事件的4种写法
  8. Android(安卓)布局各个属性的含义
  9. TextView之二:常用属性

随机推荐

  1. php学习
  2. 下载安装VS Code 及常用插件,与个人对Http
  3. 初次学习前端必备的开发工具VS Code简单
  4. 2021.6.28
  5. 学习环境搭建及浅谈对Http协议的理解
  6. vscode的下载和安装以及常用插件的部署和
  7. 开学第一课
  8. VS code下载安装插件以及http协议
  9. 0426php第一天
  10. 网站快速排名优化_企业站优化必读