2009-08-14 11 views
22

Naprawdę doceniam, jeśli ktoś może mi pomóc z wykorzystaniem sposobu rysowania kształtu jako mojego xml tła dla mojego widoku.Używanie kształtu możliwego do rysowania jako tła xml

Oto, co próbowałem: Ale nigdy nie dostaję koloru. Android zawsze daje mi czarny tekst na białym tle, niezależnie od tego, jaki atrybut koloru umieściłem.

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle"> 
      <stroke android:width="1dip" android:color="#FBBB" /> 
      <solid android:color="#6000"/> 
</shape> 

próbowałem, nie działa

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle" 
      android:color="#6000> 

</shape> 

próbowałem, nie działa

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
      android:shape="rectangle" 
      android:background="#6000> 
</shape> 

google ten jest ograniczony wynik znalazłem spróbować.

+0

Twoje przykłady kształt tu pracować. Prawdopodobnie nie konfigurujesz go prawidłowo w widoku –

+4

@ n179911: Nie rozpoczynaj swoich tytułów od słów: pomoc w ... Wiemy już, że szukasz pomocy – Casebash

Odpowiedz

36

Masz błędne ustawienia kolorów, należy określić bajt 4 kolory np: #ffff8080

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#f0600000"/> 
    <stroke android:width="3dp" android:color="#ffff8080"/> 
    <corners android:radius="3dp" /> 
    <padding android:left="10dp" android:top="10dp" 
     android:right="10dp" android:bottom="10dp" /> 
</shape> 
+0

Mój 1.5 SDK działa wspaniale z 3 lub 4 kodami kolorów znaków –

+10

Nie jest jasne, jak 9 osób ocenia tę odpowiedź jako rozwiązanie wskazanego problemu! Zobacz http://developer.android.com/guide/topics/resources/more-resources.html#Color. 32-bitowe kolory NIE są wymagane! Ponadto opublikowałem aplikacje korzystające z 24-bitowych rysunków w kształcie kolorów. Zobacz http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape. W końcu próbowałem "zatwierdzonego" kodu - nie udało się! – Tenacious

+1

przeprosiny - powinienem był powiedzieć "to nie działa" - nie "zawiedzie!" – Tenacious

5

OK - Jestem całkiem pewien, mój problem jest taki sam jak co zawiózł swoje pytanie, a że mam znalazłem jego przyczynę.

Problem stanowią sprzeczne definicje zasobów (w szczególności nazwy plików zasobów). Powiedz, na przykład, z jakiegoś powodu umieściłeś plik o nazwie "drawable_bg.png" w/res/color/w swoim projekcie; i zapomniałem, że to zrobiłeś (lub stało się to przypadkowo). Jeśli następnie spróbujesz zdefiniować Kształt Rysowany w twoim projekcie o nazwie "res/drawable/dialog_bg.xml" - priorytet ma PNG (z "MyLib"). Ponieważ możesz mieć wiele folderów "res" dla różnych DPI, współczynników kształtu, SDK itp. - dość łatwo jest skończyć z kolizją nazw plików. Może się to również zdarzyć w przypadku projektów w Android Library. Jeśli twój projekt ma jakieś zależności od projektów, które same mają zasoby, mogą powodować konflikty. Jak już dziś stwierdziłem, Eclipse może albo ukryć, albo nie pokazać ostrzeżenia w wielu sytuacjach.

Gdy to się stanie, może się łatwo pojawić, że opcja Kształt nie jest stosowana. Ponieważ "dialog_bg.png" prawdopodobnie nie jest zaprojektowany dla twojego widoku, dostajesz nieoczekiwane wyniki i łatwo jest pogubić się w tym, co się naprawdę dzieje.

Najprostszym sposobem rozwiązania tego problemu jest zmiana nazwy kształtu, który można przeciągnąć w projekcie. Jeśli problem dotyczy zasobu (zasobów) w projekcie biblioteki Android, może pojawić się lepsze rozwiązanie dzięki zastosowaniu zalecanej praktyki opisanej w artykule http://tools.android.com/recent/buildchangesinrevision14.

+0

Wielkie dzięki, spróbowałem każdej znalezionej zwariowanej opcji, ale nic nie pomogło. Zmieniła mnie tylko zmiana nazwy pliku kształtów. – Anastasia

3

Wygląda na to, że jest tu kilka problemów. Największym wydaje się być pomysł, że możesz użyć kształtu jako koloru tekstu i to nie wydaje się mieć sensu. Możesz użyć koloru jako tła kształtu i możesz ustawić kształt jako tło widoku, ale nie możesz ustawić kształtu jako tła tekstu lub pierwszego planu.

Inną rzeczą, która wygląda źle, jest to, że w alternatywnych plikach XML, które wypróbowałeś, nie ma końcowych cytatów dotyczących wartości kolorów, więc nie powinny one w ogóle się kompilować.

3

Podajesz nieprawidłowy atrybut koloru hexa. Powinno to być osiem cyfr po #. np #00000000

1

spróbować

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

<corners 
    android:bottomLeftRadius="5dp" 
    android:bottomRightRadius="5dp" 
    android:radius="0.1dp" 
    android:topLeftRadius="5dp" 
    android:topRightRadius="5dp" /> 

<solid android:color="#Efffff" /> 

<stroke 
    android:width="2dp" 
    android:color="#25aaff" /> 

</shape> 
Powiązane problemy