Android Vertical TextView 文字竖排
16lz
2021-01-23
竖排文字控件:
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" />
更多相关文章
- 项目中那些事|控件之TextView
- [android]控件Button常用属性
- 文字跑马灯
- Android 控件view的可见,不可见,隐藏的设置和区别
- android 输入法出现挤压屏幕、android输入键盘覆盖了屏幕控件的
- Android 控件使用参数集锦
- Android控件笔记——在界面中显示及输入文本信息
- android 带文字的ImageButton
- Android:控件的隐藏显示失效了