是否可以在Android TextView周围绘制边框?
当前回答
检查下面的链接以制作圆角http://androidcookbook.com/Recipe.seam?recipeId=2318
Android项目中res下的可绘制文件夹不限于位图(PNG或JPG文件),但它也可以保存XML文件中定义的形状。
然后可以在项目中重用这些形状。形状可用于在布局周围放置边框。此示例显示了带有弯曲角的矩形边框。在可绘制文件夹中创建一个名为customerborder.xml的新文件(在Eclipse中,使用“文件”菜单并选择“新建”,然后选择“文件”,在文件名中键入可绘制文件夹并单击“完成”)。
输入定义边框形状的XML:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="20dp"/>
<padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
<solid android:color="#CCCCCC"/>
</shape>
属性android:shape设置为矩形(形状文件也支持椭圆、直线和环形)。矩形是默认值,因此如果它是正在定义的矩形,则可以忽略此属性。有关形状的Android文档,请参见http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape有关形状文件的详细信息。
元素角点将矩形角点设置为圆角。可以在每个角落设置不同的半径(参见Android参考)。
填充属性用于移动应用形状的视图的内容,以防止内容与边境
此处的边框颜色设置为浅灰色(CCCCCC十六进制RGB值)。
形状也支持渐变,但这里没有使用渐变。再次,请参阅Android资源,了解如何定义渐变。使用android:background=“@drawbable/customborder”将形状应用于laypout。
在布局中,可以正常添加其他视图。在本例中,添加了一个TextView,文本为白色(FFFFFF十六进制RGB)。背景设置为蓝色,加上一些透明度以降低亮度(A00000FF十六进制alpha RGB值)。最后,通过将布局放置到另一个带有少量填充的布局中,将布局从屏幕边缘偏移。因此,完整布局文件为:
<?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"
android:padding="5dp">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/customborder">
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Text View"
android:textSize="20dp"
android:textColor="#FFFFFF"
android:gravity="center_horizontal"
android:background="#A00000FF" />
</LinearLayout>
</LinearLayout>
其他回答
检查下面的链接以制作圆角http://androidcookbook.com/Recipe.seam?recipeId=2318
Android项目中res下的可绘制文件夹不限于位图(PNG或JPG文件),但它也可以保存XML文件中定义的形状。
然后可以在项目中重用这些形状。形状可用于在布局周围放置边框。此示例显示了带有弯曲角的矩形边框。在可绘制文件夹中创建一个名为customerborder.xml的新文件(在Eclipse中,使用“文件”菜单并选择“新建”,然后选择“文件”,在文件名中键入可绘制文件夹并单击“完成”)。
输入定义边框形状的XML:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="20dp"/>
<padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
<solid android:color="#CCCCCC"/>
</shape>
属性android:shape设置为矩形(形状文件也支持椭圆、直线和环形)。矩形是默认值,因此如果它是正在定义的矩形,则可以忽略此属性。有关形状的Android文档,请参见http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape有关形状文件的详细信息。
元素角点将矩形角点设置为圆角。可以在每个角落设置不同的半径(参见Android参考)。
填充属性用于移动应用形状的视图的内容,以防止内容与边境
此处的边框颜色设置为浅灰色(CCCCCC十六进制RGB值)。
形状也支持渐变,但这里没有使用渐变。再次,请参阅Android资源,了解如何定义渐变。使用android:background=“@drawbable/customborder”将形状应用于laypout。
在布局中,可以正常添加其他视图。在本例中,添加了一个TextView,文本为白色(FFFFFF十六进制RGB)。背景设置为蓝色,加上一些透明度以降低亮度(A00000FF十六进制alpha RGB值)。最后,通过将布局放置到另一个带有少量填充的布局中,将布局从屏幕边缘偏移。因此,完整布局文件为:
<?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"
android:padding="5dp">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/customborder">
<TextView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Text View"
android:textSize="20dp"
android:textColor="#FFFFFF"
android:gravity="center_horizontal"
android:background="#A00000FF" />
</LinearLayout>
</LinearLayout>
我只是在寻找一个类似的答案——它可以通过Stroke和以下覆盖来完成:
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
Paint strokePaint = new Paint();
strokePaint.setARGB(255, 0, 0, 0);
strokePaint.setTextAlign(Paint.Align.CENTER);
strokePaint.setTextSize(16);
strokePaint.setTypeface(Typeface.DEFAULT_BOLD);
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setStrokeWidth(2);
Paint textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTextAlign(Paint.Align.CENTER);
textPaint.setTextSize(16);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
canvas.drawText("Some Text", 100, 100, strokePaint);
canvas.drawText("Some Text", 100, 100, textPaint);
super.draw(canvas, mapView, shadow);
}
我找到的最简单的解决方案(而且实际可行):
<TextView
...
android:background="@android:drawable/editbox_background" />
创建一个边框视图,背景颜色作为边框的颜色和文本视图的大小。将边框视图填充设置为边框的宽度。将文本视图背景色设置为文本视图所需的颜色。现在在边框视图中添加文本视图。
在xml文本视图上设置背景,
将roundd_textview.xml文件添加到可绘制目录中。
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@android:color/white" />
<stroke android:width="2dip" android:color="#4f5g52"/>
</shape>
在textView背景中设置可绘制文件。
推荐文章
- Manifest合并失败:uses-sdk:minSdkVersion 14
- 为什么Android工作室说“等待调试器”如果我不调试?
- 如何检查我的EditText字段是否为空?
- Android从图库中选择图像
- 后台任务,进度对话框,方向改变-有任何100%工作的解决方案吗?
- Android:垂直对齐多行EditText(文本区域)
- Android无尽列表
- Android room persistent: AppDatabase_Impl不存在
- 错误:执行失败的任务':app:compileDebugKotlin'。>编译错误。详细信息请参见日志
- 在Android中使用URI生成器或使用变量创建URL
- 缩放图像以填充ImageView宽度并保持纵横比
- 列表视图的自定义适配器
- 在Android中设置TextView span的颜色
- 如何以编程方式在RelativeLayout中布局视图?
- Android Facebook集成无效键散列