Mar*_*tój 17 android border shape line progress-bar
我正在创建一个自定义进度条(位于a下面WebView),我想绘制的是一条1dp宽的线WebView和它之间的线ProgressBar.我正在修改现有的drawable,即progress_horizontal.xml尝试过这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
(...)
<item>
<shape android:shape="line">
<stroke android:width="1dp" android:color="#FF000000" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
然而,这条线是垂直居中的,但我希望它在drawable的顶部绘制.我能提出的唯一想法是在下面使用这个"hacky"渐变:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
(...)
<item>
<shape>
<gradient
android:startColor="#FF000000"
android:centerColor="#00000000"
android:centerY="0.01"
android:endColor="#00000000"
android:angle="270"
/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
您是否有更好的想法如何绘制与定义的drawable顶部对齐的单一线条形状layer-list?
cot*_*aws 47
我花了一些时间试图解决这个问题.希望有一个更好的方法来做到这一点,但这是我使用的方法,这也是一种hackish,但如果它有助于某人,我想我会分享.
图层列表中的第一个项目应该是您希望成为边框的任何颜色的实体.接下来就是你想拥有边框的东西,在你希望边框打开的任何一侧都有填充.
例如:
<?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="YOUR BORDER COLOR" />
</shape>
</item>
<item android:top="YOUR TOP BORDER THICKNESS">
THE THING YOU WANT A BORDER ON
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
这个想法是项目上的衬垫显示出它背后的坚固形状,给出了边框外观.您可以在任何一侧添加填充以添加边框.我想你可能会变得更复杂,并且这种方式也有不同的彩色边框.
看起来像一个黑客,但它对我有用.
编辑:我说"填充"但在图层列表中它更多的是偏移.
小智 12
我正在浏览所有相关主题,但没有人可以解决我的问题.但是其中一些对于理解图层列表或形状参数如何工作非常有用.
我的问题是定义一个带有线性渐变的按钮,并绘制不同颜色的顶部和底部线.毕竟我破解了这个解决方案.我保存了文件unter res/drawable/blue_btn.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" >
<shape android:shape="rectangle">
<solid android:color="@color/blue_end" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
<stroke
android:width="1dp"
android:color="@color/bottomline_btn" />
</shape>
</item>
<item>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<solid android:color="@color/blue" />
<gradient
android:startColor="@color/blue"
android:endColor="@color/blue_end"
android:angle="270" />
</shape>
</item>
<item android:top="0dp" android:bottom="-1dp" android:left="-1dp" android:right="-1dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/topline_btn" />
<solid android:color="#00000000" />
<corners android:radius="0dp" />
</shape>
</item>
<item android:top="-1dp" android:bottom="0dp" android:left="-1dp" android:right="-1dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/bottomline_btn" />
<solid android:color="#00000000" />
<corners android:radius="0dp" />
</shape>
</item>
</layer-list>
</item>
</selector>
<color name="topline_btn">#31ffffff</color>
<color name="bottomline_btn">#31000000</color>
<color name="blue">#449def</color>
<color name="blue_end">#2f6699</color>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39284 次 |
| 最近记录: |