在文本周围绘制矩形

时间:2013-12-27 14:36:20

标签: android text android-canvas

我需要在画布上的text周围绘制矩形。 目前我用它来计算矩形位置:

Rect bounds = new Rect();
paint.getTextBounds(getData().getText(), 0, getData().getText().length(), bounds);

data.getBoundBox().left = start.x+bounds.left;
data.getBoundBox().right = start.x+bounds.right;
data.getBoundBox().top = start.y + bounds.top;
data.getBoundBox().bottom = start.y+bounds.bottom;

其中start是text基线的坐标。 但我得到了这个:

https://dl.dropboxusercontent.com/u/29406527/Screenshot_2013-12-27-14-15-28.png

我尝试了measureText之类的东西,但没有区别。

1 个答案:

答案 0 :(得分:1)

您应该使用可绘制的形状并将其设置为TextView的背景。

这是可绘制的形状:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <stroke 
        android:dashWidth="3dp" 
        android:dashGap="3dp" 
        android:color="#FFFFFF" 
        android:width="1dp"/>

    <padding 
        android:left="10dp" 
        android:top="10dp" 
        android:right="10dp" 
        android:bottom="10dp"/>

    <corners 
        android:radius="4dp" />

</shape>

这就是你将它设置为背景的方式:

<TextView 
    android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/shape"
    />