public class FrameTextView extends TextView {
private Paint mPaint = null;
private Rect r = null;
public FrameTextView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
r = new Rect();
}
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
this.getLocalVisibleRect(r);
mPaint.setColor(Color.BLACK);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(1);
canvas.drawRect(r, mPaint);
}
9 个解决方案
#1
画一个假的边框好了,不过如果你每个TextView都这样画的话看起来就很啰嗦了,还是你自己继承TextView的方法比较好.
给一个假边框的demo供你参考.
给一个假边框的demo供你参考.
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFF0000">
<TextView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="3dip"
android:background="#FFFFFFFF"
android:paddingTop="5dp"
android:paddingLeft="5dp"
android:text="哈哈哈哈哈哈">
</TextView>
</LinearLayout>
#2
用个背景图片
#3
我没有那么做过!
我一般是用一个有边框的图片来做TextView的背景图片!
我一般是用一个有边框的图片来做TextView的背景图片!
#4
背景圖吧,google本身的應用也是這麼做的,沒必要自己畫吧
#5
楼主的代码其实是可以画出来的,拿来试了一下,加下面两句就可以了,但是具体原因是什么还没找到.
=.=
=.=
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
this.getLocalVisibleRect(r);
r.bottom --;
r.right--;
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(1);
canvas.drawRect(r, mPaint);
}
#6
谢谢!这也是一个解决的办法,不过我还是觉得奇怪为何有一半的边界画不出来
#7
嗯,这个方法我也尝试过,是可以画出边界,不过如果这样做的话,当两个控件并排的时候,就会显得中间分隔的边界很粗了。
#8
背景图效果是最好的。
#9
#1
画一个假的边框好了,不过如果你每个TextView都这样画的话看起来就很啰嗦了,还是你自己继承TextView的方法比较好.
给一个假边框的demo供你参考.
给一个假边框的demo供你参考.
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFF0000">
<TextView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="3dip"
android:background="#FFFFFFFF"
android:paddingTop="5dp"
android:paddingLeft="5dp"
android:text="哈哈哈哈哈哈">
</TextView>
</LinearLayout>
#2
用个背景图片
#3
我没有那么做过!
我一般是用一个有边框的图片来做TextView的背景图片!
我一般是用一个有边框的图片来做TextView的背景图片!
#4
背景圖吧,google本身的應用也是這麼做的,沒必要自己畫吧
#5
楼主的代码其实是可以画出来的,拿来试了一下,加下面两句就可以了,但是具体原因是什么还没找到.
=.=
=.=
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
this.getLocalVisibleRect(r);
r.bottom --;
r.right--;
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeWidth(1);
canvas.drawRect(r, mPaint);
}
#6
谢谢!这也是一个解决的办法,不过我还是觉得奇怪为何有一半的边界画不出来
#7
嗯,这个方法我也尝试过,是可以画出边界,不过如果这样做的话,当两个控件并排的时候,就会显得中间分隔的边界很粗了。
#8
背景图效果是最好的。