android textView添加不同颜色的边框

时间:2023-02-11 10:27:58

(一个群里的兄弟问的,)

android给textview 添加边框 可以使用shape  这个只能添加同一种 需要组合的形式 实现如下小果盘

1,使用 layer_list 进行 做个组合 使用一个 矩形边框   和一个其他颜色的直线进行 组合。android textView添加不同颜色的边框

上面的 helloWord  是用的 组合写的。

还是直接贴代码吧  

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<stroke
android:width="2dp"
android:color="#fff000" />
<!-- 这里可以切换背景颜色-->
<!--<solid android:color="#ff00ff" />-->
</shape>
</item>
<item android:top="17dp">
<shape android:shape="rectangle">
<solid android:color="#000000" />
</shape>

</item>

</layer-list>

然后设置 background 就好了

二,就是代码实现继承 TextView 自己绘制个边框 ,也直接上代码吧,都是核心代码 不需要删减 但是自己用估计得重新写 。

package com.example.liqingju.mytextview;

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

/**
* Created by liqingju on 2016/2/17.
*/
public class MyTextView extends TextView {
private Paint paint;


public MyTextView(Context context) {
super(context);
init();
}

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

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

@Override
protected void onDraw(Canvas canvas) {
canvas.drawLine(0, 0, this.getWidth(), 0, paint);
canvas.drawLine(0, 0, 0, this.getHeight(), paint);
canvas.drawLine(this.getWidth(), 0, this.getWidth(), this.getHeight(), paint);
paint.setColor(Color.RED);
canvas.drawLine(0, this.getHeight(), this.getWidth(), this.getHeight(), paint);
canvas.save();
canvas.restore();
super.onDraw(canvas);
}

private void init() {
paint = new Paint();
paint.setStrokeWidth(10);
paint.setColor(Color.BLACK);
}

}
最后上传个源码吧。