单独的边框线,可以使用图片,但是要满足某些限制去实现我们想要达到的效果,一旦需求变了,图片又得重新做,确实费时费力,一般的方法又不能单独设置我们的边框线,所以,一种比较好的方式是对某个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的内边框里,这样我们就能看到效果了。