如何在View的边缘边界附近设置边框?

时间:2017-07-01 09:32:40

标签: android android-layout

我的视图有一个边距以及一些填充。我想在视图周围放置一个边框,但自然边界上的不是,即边距和填充之间的边界),但外部边界保证金所依据的。我怎么能这样做?

请注意,对于已经在SO上的自然边界,这个问题有几个答案,他们在我的情况下不起作用。事实上,我一直在使用这些解决方案半心半意,但设计最终不能并且不应该受到损害。

3 个答案:

答案 0 :(得分:0)

至少方法:

  • 在res / drawable中创建XML边框并将其用作View background
  • 从View中派生一个类并在onDraw中绘制边框。

答案 1 :(得分:0)

我认为没有好的解决方案,因为边距是LayoutParams的一部分,由父ViewGroup处理,因此视图不知道它们(尽管它可以在其naural边界之外绘制)。我能想象的唯一方法是子类ViewGroup(例如LinearLayout)并从那里计算并绘制边框。

答案 2 :(得分:0)

您可以尝试使用此解决方法: 使用此xml代码作为视图的drawable,您打算在边距上显示边框

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
   <item android:top="-margin_top"
         android:bottom="-margin_bottom"
         android:left="-margin_left"
         android:right="-margin_right"> 
      <shape 
        android:shape="rectangle">
            <stroke android:width="req + margin" android:color="#43000000" />
        </shape>
   </item>
</layer-list>

我希望这能解决您的问题