您好,我想在Android视图中重新创建此“设计”。基本上在TextView周围有一个均匀的边框。
我创建了一个TextView:
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="R"
android:textSize="30sp"
android:background="@drawable/border_red"
android:gravity="center" />
我添加了一个可绘制的形状:
<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<stroke
android:width="4dp"
android:color="#ff687b" />
<corners android:radius="4dp"/>
<padding android:right="0dp" android:left="0dp" android:bottom="0dp" android:top="0dp"/>
</shape>
我在Android预览器和应用程序中的奇怪行为得到了这种奇怪行为:
我尚未定义任何填充。它们都设置为0dp
,但是边界似乎已经有某种边距/填充。
此行为使得很难在字符周围创建均匀的矩形边框。 :-(
出了什么问题,我做错了什么?
答案 0 :(得分:3)
使用android:includeFontPadding="false"
从TextView
删除字体填充
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="R"
android:textSize="30sp"
android:includeFontPadding="false"
android:background="@drawable/border_red"
android:gravity="center" />
这将从padding
的顶部和底部删除大部分TextView
。
要获得一个完美的正方形,您必须将width
和height
分别设为TextView
答案 1 :(得分:1)
如果您不同意,可以。我向您展示,以便您学习。 :)
使用与上述相同的XML ...
这是我的布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.vzw.www.myapplication.MainActivity"
android:orientation="vertical"
android:padding="10dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/red_border"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="H"
android:textStyle="bold"/>
</LinearLayout>
</LinearLayout>
这是结果……
您也可以通过创建自定义TextView来实现此目的...但是我不会介绍...但是如果您愿意,可以。实际上,这是一个更好的解决方案。