(一个群里的兄弟问的,)
android给textview 添加边框 可以使用shape 这个只能添加同一种 需要组合的形式 实现如下小果盘
1,使用 layer_list 进行 做个组合 使用一个 矩形边框 和一个其他颜色的直线进行 组合。
上面的 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);
}
}
最后上传个源码吧。