给TextView加个边框

本文介绍了三种为TextView添加边框的方法,从简单到复杂依次是:设置背景资源,使用XML定义边框样式,以及自定义View在onDraw中绘制边框。详细步骤和代码示例供开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下的边框:


方法有三个(这三个方法按难度从低到高来排序的):

1:给TextView一个背景,这个背景就是有边框的。

2:定义一个xml文件,在控件中通过background引用:

如下在drawable下定义一个xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!--门店新客的边框-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00000000"/>
    <stroke android:width="1dp" android:color="#64B847" />
    <corners android:radius="2dp"/>
</shape>

在控件中引用如下:

<TextView
    android:layout_width="33dp"
    android:layout_height="15dp"
    android:text="限新客"
    android:textColor="@color/newCustomerLimit"
    android:textSize="10dp"
    android:gravity="center"
    android:background="@drawable/new_customer"/>

3:自己定义一个自定义控件,在onDraw事件方法中画边框,这个知识点要求较高:

public class BorderTextView extends TextView{

    public BorderTextView(Context context) {
        super(context);
    }
    public BorderTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    private int sroke_width = 1;
    @Override
    protected void onDraw(Canvas canvas) {
        Paint paint = new Paint();
        //  将边框设为黑色  
        paint.setColor(android.graphics.Color.BLACK);
        //  画TextView的4个边  
        canvas.drawLine(0, 0, this.getWidth() - sroke_width, 0, paint);
        canvas.drawLine(0, 0, 0, this.getHeight() - sroke_width, paint);
        canvas.drawLine(this.getWidth() - sroke_width, 0, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);
        canvas.drawLine(0, this.getHeight() - sroke_width, this.getWidth() - sroke_width, this.getHeight() - sroke_width, paint);
        super.onDraw(canvas);
    }
}
这样就完成了我们想要的了,难度成阶梯。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值