我有一个简单的目标。我想在我的 FrameLayout 上有一个浅灰色的背景,在它下面有一条黑色的分界线(只在下面,而不是在四周)。到目前为止,我有这个:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle" android:gravity="center">
<solid android:color="#EEEEEE" />
</shape>
</item>
<item>
<shape android:shape="line" android:gravity="bottom" >
<stroke android:width="1dip" android:color="#010101"/>
</shape>
</item>
</layer-list>
但它通过中心画线,即忽略重力='底部'位。我该如何解决这个问题?
编辑:这个问题非常老了。选择的答案可能与当前的 API 等一致,也可能不一致。我们鼓励您提出自己的问题,而不是添加到不再受监控的问题中。
最佳答案
我也为此苦苦挣扎。基本上,要在底部创建边框,您必须从与预期相反的方向思考。你从一个带有边框颜色的矩形开始。最重要的是,您绘制实际颜色,并从底部偏移。 我用这个:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- CREATE A RECTANGLE WITH YOUR BORDER COLOR -->
<item>
<shape android:shape="rectangle" >
<solid android:color="#fff"/>
</shape>
</item>
<!-- NOW DEFINE THE NORMAL COLOR-->
<item android:bottom="BOTTOM_BORDER_THICKNESS E.G. 4dp">
<shape android:shape="rectangle" >
<solid android:color="#ccc"/>
</shape>
</item>
</layer-list>
或者,如 Juan Pablo Saraceno建议:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<color android:color="YOUR_BORDER_COLOR" />
</item>
<item android:top="YOUR_BORDER_THICKNESS">
<color android:color="YOUR_BG_COLOR" />
</item>
</layer-list>
关于android - 如何让重力 'bottom' 在 xml 中的可绘制对象上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8836901/