android View如何画某条边的边框线

单独的边框线,可以使用图片,但是要满足某些限制去实现我们想要达到的效果,一旦需求变了,图片又得重新做,确实费时费力,一般的方法又不能单独设置我们的边框线,所以,一种比较好的方式是对某个View进行重写。

比如下面的代码:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class DetailItemRelLayout extends RelativeLayout {

	public DetailItemRelLayout(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public DetailItemRelLayout(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public DetailItemRelLayout(Context context) {
		super(context);
	}

	@Override
	protected void onDraw(Canvas canvas) {
		Paint paint = new Paint();
		paint.setColor(0xFF242833);
		
		int width = this.getWidth();
		int height = this.getHeight();
		
		canvas.drawLine(0, 0, 0, height, paint);
		canvas.drawLine(0, height - 1, width - 1, height - 1, paint);
		canvas.drawLine(width - 1, height -1, width - 1, 0, paint);
		super.onDraw(canvas);
	}
}

主要是在onDraw方法中绘制边框,其实很简单,就是要注意一点,canvas.drawLine()方法中,有-1的地方是要特别注意的,如果不减效果就没有,原因是android里面边框线默认是1px的,减一就是让线条画在view的内边框里,这样我们就能看到效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值