Sto lavorando per aggiungere l'effetto di ripple quando si tocca la preferenza (selezionata). Ho personalizzato la mia preferenza estendendo il numero ListPreference
. Ho provato a impostare l'effetto a catena programmaticamente utilizzando RippleDrawable
ma non vedo l'animazione.Come aggiungere l'effetto a catena alle preferenze in Android?
Ecco il mio personalizzato preferenza
public class CustomListPreference extends ListPreference {
public CustomListPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomListPreference(Context context) {
super(context);
}
@Override
protected void onBindView(View view) {
super.onBindView(view);
setCustomStyle(view);
}
private void setCustomStyle(View view) {
TextView titleView = (TextView) view.findViewById(android.R.id.title);
titleView.setTypeface(InitActivity.TYPEFACE_REGULAR);
TextView summary = (TextView) view.findViewById(android.R.id.summary);
summary.setTypeface(InitActivity.TYPEFACE_REGULAR);
//Setting the drawable here, but it doesn't work.
RippleDrawable drawable = (RippleDrawable) getContext().getResources().getDrawable(R.drawable.my_ripple_background);
view.setBackGround(drawable);
}
}
Le mie preferenze di layout
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<!-- opens a subscreen of settings -->
<com.abc.app.CustomListPreference
android:defaultValue="1"
android:entries="@array/sampleEntries"
android:entryValues="@array/SampleEntryValues"
android:key="some_preference"
android:title="@string/some_preferences" />
<com.abc.app.CustomCheckboxPreference
android... />
</PreferenceScreen>
mio ondulazione xml
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/light_black_overlay"> <!--#22000000-->
<item>
<shape
android:shape="rectangle">
<solid android:color="@android:color/background_light" />
</shape>
</item>
</ripple>
Perchè sono impostando l'animazione per la corretta visione? Qualsiasi idea è apprezzata. Grazie.
ho accidentalmente aggiunto estensione del file .xml nel mio codice. Penso di aver eseguito il mio codice senza l'estensione del file. Proverò altri frammenti però. – Prudhvi
Ho provato il tuo codice, ho potuto vedere lo sfondo colorato blu al tatto ma non è come un'increspatura.Un'ondulazione dovrebbe espandersi dal punto di tocco ai modi laterali della vista. – Prudhvi
@prudhvi lo fa esattamente per me però. Che sdk stai usando? Potresti includere un po 'del tuo codice in modo da poterlo verificare? Soprattutto il tuo ripple xml –