我有一个TextView,我想在顶部边框上放一个不同的颜色(比如白色(我尝试了这样的东西,但不起作用(将白色边框放在所有边距上——左、右、上、下(
<TextView
android:layout_height="50dip"
android:text="@string/total"
android:background="@drawable/border_top_textview"
android:textColor="#FFFFFF"
android:id="@+id/totalCash"
android:layout_width="match_parent"
android:gravity="center_vertical"
android:textSize="26dip"
android:layout_weight="0.3"
android:textStyle="bold"></TextView>
和border_top_textview.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<stroke android:width="2dp" android:height="2dp" android:color="#FFFFFF" />
<solid android:color="#000000" />
<padding android:top="1dp" android:bottom="1dp" />
</shape></item></layer-list>
最简单的方法是使用9块图像作为具有所需边界的背景。
或
试试这个,也许它会帮助你,它会在顶部创建一条线,看起来像一个边界:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="line">
<stroke android:width="5dp" android:color="#FFFF00" />
<solid android:color="#00000000" />
<padding android:top="25dp" />
</shape>
</item>
</layer-list>
在这里,您可以将这些线放在形状标签中
<stroke android:width="4dp" android:color="#FFFFFF" />
<padding android:left="0dp" android:top="7dp"
android:right="0dp" android:bottom="0dp" />
将顶部填充至少5dp,并使其他0dp
public class MyTextView extends TextView {
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Rect rect = new Rect();
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.WHITE);
paint.setStrokeWidth(3);
getLocalVisibleRect(rect);
canvas.drawRect(rect, paint);
}
}
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<samples.test.MyTextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
参见此处
尝试这种使用图像作为边界的棘手方法,并使用此代码,它会很好地工作。
enter code here
<TextView
android:id="@+id/text1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:drawableTop="@drawable/header1"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="@drawable/selector_icon_text_color"
android:text="Hussain">
</TextView>