Želim ustvariti gradientno ozadje, kjer je gradient v zgornji polovici, v spodnji polovici pa je enobarvno, kot na spodnji sliki:
Ne morem, ker se barva centerColor
razširi na spodnji in zgornji del.
Kako lahko naredim ozadje, kot je na prvi sliki? Kako lahko naredim majhno barvo centerColor
, ki se ne širi?
To je koda v XML zgornjega gumba za ozadje.
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
android:startColor="#6586F0"
android:centerColor="#D6D6D6"
android:endColor="#4B6CD6"
android:angle="90"/>
<corners
android:radius="0dp"/>
</shape>
Ta videz 'polovičnega gradienta' lahko ustvarite z uporabo xml Layer-List za združitev zgornjih in spodnjih 'pasov' v eno datoteko. Vsak pas je oblika xml.
Za podrobno navodilo si oglejte ta prejšnji odgovor na SO: Multi-gradient shapes.
Najprej morate ustvariti gradient.xml, kot sledi
<shape>
<gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" />
<stroke android:width="1dp" android:color="#343434" />
</shape>
Nato morate omeniti zgornji gradient v ozadju postavitve.Kot sledi
<?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>
Zakaj ne bi ustvarili slike ali slike z 9 zaplatami in jo uporabili?
Na spodnji povezavi je lep vodnik, kako to storiti:
http://android.amberfog.com/?p=247
Če vztrajate pri uporabi Oblika, poskusite na spodnjem spletnem mestu (spodaj levo spodaj izberite Android): http://angrytools.com/gradient/
Na tej povezavi sem ustvaril podoben gradient (ne natančen), kot ga imate vi: http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269