❶ 怎麼讓textview呈現出一個黑色邊框
主要有三種方式可以實現:
帶有邊框的透明圖片
使用xml的shape設置
繼承TextView覆寫onDraw方法。
方法一:
帶有透明圖片的背景圖,只要設置background="#00000"就可以了。
方法二:
通過shape來設置背景圖片
首先一個textview_border.xml文件放在drawable文件夾裡面
<?xmlversion="1.0"encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle">
<solidandroid:color="#ffffff"/>
<strokeandroid:width="1dip"android:color="#4fa5d5"/>
</shape>
為要添加邊框的TextView添加一個background
android:background="@drawable/textview_border"
方法三:
編寫一個繼承TextView類的自定義組件,並在onDraw事件方法中畫邊框。
packagecom.example.test;
importandroid.annotation.SuppressLint;
importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Paint;
importandroid.util.AttributeSet;
importandroid.widget.TextView;
@SuppressLint("DrawAllocation")
{
publicBorderTextView(Contextcontext){
super(context);
}
publicBorderTextView(Contextcontext,AttributeSetattrs){
super(context,attrs);
}
privateintsroke_width=1;
@Override
protectedvoidonDraw(Canvascanvas){
Paintpaint=newPaint();
//將邊框設為黑色
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);
}
}