Android TextView 竖向显示(字体长度对字体位置有影响)
生活随笔
收集整理的這篇文章主要介紹了
Android TextView 竖向显示(字体长度对字体位置有影响)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求:
Android字體豎向顯示
1、使用android:rotation="90";不足:如果字體很長,那么會有很長的距離。
2、自定義TextView豎向布局。消除了字體長度對字體位置有影響
1、rotation使用(不建議)
效果圖:
代碼:
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:rotation="90"android:text="① 請拍攝身份證人像面"android:textColor="@color/font_white"android:visibility="gone" />如圖:由于 ① 請拍攝身份證人像面 這個字體太長,導致右側右邊距。所以需要自定義TextView
2、自定義TextView(建議)
效果圖:
引用代碼:
<com.baofu.yunfutong.ui.view.VerticalTextViewandroid:id="@+id/tv_topText"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:text="① 請拍攝身份證人像面"android:layout_centerVertical="true"android:textColor="@color/font_white" />VerticalTextView代碼:
package com.baofu.yunfutong.ui.view;import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.Gravity; import android.widget.TextView;/*** TextView豎向顯示* Created by zst on 2018/12/6.*/ @SuppressLint("AppCompatCustomView") 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;}elsetopDown = true;}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){super.onMeasure(heightMeasureSpec, widthMeasureSpec);setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());}@Overrideprotected boolean setFrame(int l, int t, int r, int b){return super.setFrame(l, t, l+(b-t), t+(r-l));}@Overridepublic 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);} }如圖:消除了字體長度對于字體位置的影響。
總結
以上是生活随笔為你收集整理的Android TextView 竖向显示(字体长度对字体位置有影响)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pyecharts中Map和Geo的使用
- 下一篇: Android - 接口回调 inter