我能够将边框绘制成线性布局,但它会在各个方面绘制.我想将它限制在右侧,就像你在CSS中那样(border-right:1px solid red;).
我试过这个,但它仍然涉及各个方面:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<stroke
android:height="2dp"
android:width="2dp"
android:color="#FF0000" />
<solid android:color="#000000" />
<padding
android:bottom="0dp"
android:left="0dp"
android:right="1dp"
android:top="0dp" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="5dp"
android:radius="1dp"
android:topLeftRadius="5dp"
android:topRightRadius="0dp" />
</shape>
</item>
Run Code Online (Sandbox Code Playgroud)
有关如何实现这一目标的任何建议?
顺便说一句,我不想使用在所需的一侧放置宽度为1dp的视图.
Viv*_*wal 354
您可以使用它来获取一侧的边框
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#FF0000" />
</shape>
</item>
<item android:left="5dp">
<shape android:shape="rectangle">
<solid android:color="#000000" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
EDITED
包括我在内的很多人想要一个带透明背景的单边边框,我实现了一个BorderDrawable可以给我边框不同大小和颜色的边框,就像我们使用css一样.但这不能通过xml使用.为了支持XML,我添加了一个BorderFrameLayout可以包装布局的文件.
请参阅我的github以获取完整的来源.
Ode*_*ner 228
像馅饼一样简单,允许透明的bg:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="0"
android:startColor="#f00"
android:centerColor="@android:color/transparent"
android:centerX="0.01" />
</shape>
Run Code Online (Sandbox Code Playgroud)
更改角度以更改边框位置:
小智 98
也可以使用单个层实现所需的功能
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="-5dp"
android:right="-5dp"
android:top="-5dp">
<shape android:shape="rectangle" >
<solid android:color="@color/color_of_the_background" />
<stroke
android:width="5dp"
android:color="@color/color_of_the_border" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
这样,只有左边框是可见的,但你可以通过打达到你想要的任意组合bottom,left,right和top该属性的item元素
tro*_*per 75
要在drawable的一侧获得边框inset,请将阴影应用于其他3个边(使这些边框在屏幕外绘制).
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetTop="-2dp"
android:insetBottom="-2dp"
android:insetLeft="-2dp">
<shape android:shape="rectangle">
<stroke android:width="2dp" android:color="#FF0000" />
<solid android:color="#000000" />
</shape>
</inset>
Run Code Online (Sandbox Code Playgroud)
这种方法类似于naykah的答案,但没有使用layer-list.
Muk*_*las 19
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetRight="-2dp">
<shape android:shape="rectangle">
<corners
android:bottomLeftRadius="4dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="4dp"
android:topRightRadius="0dp" />
<stroke
android:width="1dp"
android:color="@color/nasty_green" />
<solid android:color="@android:color/transparent" />
</shape>
</inset>
Run Code Online (Sandbox Code Playgroud)
小智 7
作为替代方案(如果您不想使用背景),您可以通过如下视图轻松完成:
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#000000" />
Run Code Online (Sandbox Code Playgroud)
要仅使用右边框,请将其放置在布局之后(您想要有边框):
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#000000" />
Run Code Online (Sandbox Code Playgroud)
要仅具有左边框,请将其放置在布局(您要使用边框的位置)之前:
为我工作......希望它有一些帮助....
小智 6
我能够通过以下代码实现效果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:left="0dp" android:right="-5dp" android:top="-5dp" android:bottom="-5dp">
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="#123456" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
您可以通过改变位移方向来调整您对边界位置的需求
小智 5
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#f28b24" />
<stroke
android:width="1dp"
android:color="#f28b24" />
<corners
android:radius="0dp"/>
<padding
android:left="0dp"
android:top="0dp"
android:right="0dp"
android:bottom="0dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#f28b24"
android:endColor="#f28b24"
android:angle="270" />
<stroke
android:width="0dp"
android:color="#f28b24" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
174372 次 |
| 最近记录: |