2011-07-28 15 views
8

Próbuję przypisać selektor kolorów do rozszerzonej klasy LinearLayout, więc myślę, że to jak w przypadku LineLayout.Kolor selektora na LinearLayout

postępowałem zgodnie z instrukcjami na this post, odpowiedź mówi o kształtach.

Teraz mam 3 na xml kanału alfa folderów:

normal.xml plików

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

plik pressed.xml

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

i wreszcie plik bg.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/pressed" /> 
    <item android:state_focused="true" android:drawable="@drawable/pressed" /> 
    <item android:state_selected="true" android:drawable="@drawable/pressed" /> 
    <item android:drawable="@drawable/normal" /> 
</selector> 

Mam dostęp to w następujący sposób:

Drawable d = getResources().getDrawable(context.getResources().getIdentifier("mypackageuri.tProject:drawable/bg", null, null)); 
    view.setBackgroundDrawable(d); 

„normalna” stan grzywny, z kolorem ustawionym na „normal.xml”, ale żaden sposób z pozostałych, naciskam mój pogląd i nic się nie dzieje, to nie jest zmienia kolor w jakikolwiek sposób ...

nie mogę zobaczyć, co robię źle ...

Dziękuję

+1

chcieć wkleić xml układ – azharb

+6

Whoa, który ma być najbardziej rondo sposobem na uzyskanie rozciągliwej zasobu. . Zamiast 'getResources() getDrawable (context.getResources() getIdentifier (" mypackageuri.tProject: odkształcalne/bg", null, null));' spróbować 'getResources() getDrawable (R.. drawable.bg); '. Chyba że czegoś mi brakuje. – dmon

+0

@dmon dobry punkt, chory, spróbuj tego! dzięki!! – Deitools

Odpowiedz

22

Państwa zdanie musi być klikalny w celu uzyskania stanu pressed kiedy klikasz na to. Zastosowanie:

view.setClickable(true); 

lub xml układ:

android:clickable="true" 
+0

coś tak prostego jak to ... dziękuję !! Spróbuję tego jutro! – Deitools

+0

twoje powitanie :) –

+1

zadziałało, ty;) – Deitools