Ho una finestra popup nella mia applicazione, appare quando si fa clic su un pulsante Voglio impostare l'animazione di dissolvenza in questa finestra, Ho messo il file xml in "res/anim "cartella e impostare lo stile di animazione per la finestra popup ma l'animazione non funziona? Ecco il mio codice:come creare un'animazione per finestra popup in Android
myanim.xml ...
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="4000"
android:repeatCount="1"/>
</set>
=========================== ====================
creare la finestra pop-up
private PopupWindow showOptions(Context mcon){
try{
LayoutInflater inflater = (LayoutInflater) mcon.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.options_layout,null);
layout.setAnimation(AnimationUtils.loadAnimation(this, R.anim.myanim));
PopupWindow optionspu = new PopupWindow(layout, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
optionspu.setFocusable(true);
optionspu.showAtLocation(layout, Gravity.TOP, 0, 0);
optionspu.update(0, 0, LayoutParams.WRAP_CONTENT, (int)(hei/5));
optionspu.setAnimationStyle(R.anim.myanim);
return optionspu;
}
catch (Exception e){e.printStackTrace();
return null;}
}
=============== ================================== metodo onClick ... (optionsPopup è una variabile globale di tipo PopupWindow)
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.options:
optionsPopup=showOptions(this);
break;
}
Questo deve impostare prima di metodo showaslocation chiamata sicuramente.Ma in qualche modo Il popup si apre più volte ogni volta che clicco sul pulsante, qualche indizio perché più volte? – Ari
@Ari hai risolto un problema con la doppia animazione? – Anton
Sono riuscito a sbarazzarmi della doppia animazione rimuovendo android: repeatCount = "1" dall'animazione – NewestStackOverflowUser