获取文本宽度和高度

/**
 * 获取给定文本的宽度
 * @param text 要计算的文本
 * @param textSize 文本大小
 * @return 给定文本的宽度
 */
public static float getTextWidth(String text, float textSize){
   Paint paint = new Paint();
   paint.setTextSize(textSize);
   return paint.measureText(text);
}

/**
 * 获取当给定的文本使用给定的画笔绘制时的宽度
 * @param paint 指定的画笔
 * @param text 指定的文本 
    * @return 当给定的文本使用给定的画笔绘制时的宽度
    */  
   public static float getTextWidth(Paint paint, String text) {  
       return paint.measureText(text);  
   }

/**
 * 获取给定尺寸的文本的高度
 * @param textSize 给定尺寸
 * @return 文本的高度
 */
public static float getTextHeight(float textSize){
   Paint paint = new Paint();
   paint.setTextSize(textSize);
   FontMetrics fm = paint.getFontMetrics();   
       return fm.descent - fm.ascent;
}

/**
 * 获取给定画笔的文本高度
 * @param paint 给定的画笔
 * @return 文本的高度
 */
public static float getTextHeight(Paint paint){
   FontMetrics fm = paint.getFontMetrics();   
       return fm.descent - fm.ascent;
}

/**
 * 获取给定文本的宽度
 * @param text 要计算的文本
 * @param textSize 文本大小
 * @return 文本的宽度
 */
public static int getTextWidthByBounds(String text, float textSize){
       Paint paint = new Paint();
       Rect bounds = new Rect();
       paint.setTextSize(textSize);
       paint.getTextBounds(text, 0, text.length(), bounds);
       return bounds.width();
}

/**
 * 获取给定文本的高度
 * @param text 要计算的文本
 * @param textSize 文本大小
 * @return 文本的高度
 */
public static int getTextHeightByBounds(String text, float textSize){
       Paint paint = new Paint();
       Rect bounds = new Rect();
       paint.setTextSize(textSize);
       paint.getTextBounds(text, 0, text.length(), bounds);
       return bounds.height();
}
   
   /**
    * 获取指定画笔的文字离顶部的基准距离
    * @return 返回指定笔离文字顶部的基准距离  
    */
   public static float getTextLeading(Paint paint)  {    
       FontMetrics fm = paint.getFontMetrics();   
       return fm.leading- fm.ascent;    
   }

你可能感兴趣的:(安卓工具)