Nib*_*ain 13 android android-layout
我正在尝试使用如下背景创建一个底栏:
我目前正在使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient android:endColor="#000000" android:startColor="#696969"
android:centerColor="#696969" android:angle="270" />
<stroke android:color="#696969" />
<padding android:left="2dp" android:top="3dp" android:right="2dp"
android:bottom="3dp" />
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
但输出看起来像这样......:
如何获得这个,两个彩色背景?请建议..谢谢
小智 22
正如其他人所指出的那样,在这种情况下,九个补丁是理想的(并且不会占用太多内存).使用XML并不是最佳选择.您可以尝试以下方法:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:bottom="20dp">
<shape android:shape="rectangle" >
<size android:height="20dp" />
<solid android:color="#ff0000" />
</shape>
</item>
<item android:top="20dp">
<shape android:shape="rectangle" >
<size android:height="20dp" />
<solid android:color="#0000ff" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您的视图被认为是40dp高
它是一个包含两个不同颜色块的图层列表.XML方法的问题在于您无法将块的高度调整为百分比(= 50%).您必须在dp中使用实际视图大小的一半.这意味着每次更改视图高度/布局时都必须调整此drawable.九个补丁会自动调整.
在/ res/drawable中创建gradient.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#FFFFFF"
android:endColor="#00000000"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
并在/ res/layout中的main.xml布局文件中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
您可以通过更换指定的android的角度:角度值,通过更换开始/结束的颜色android:startColor
和android:endColor
.
归档时间: |
|
查看次数: |
24117 次 |
最近记录: |