2012-04-11 2 views
5

У меня есть приложение, в котором я использовал эффекты слайда по умолчанию для деятельности по стандарту и постепенно уменьшался в нескольких конкретных действиях.Переход активности ICS от Fade In/Out назад к слайду

Я заметил, что новый Android 4.X (ICS) имеет разные значения по умолчанию, которые точно исчезают в/из.

Как я могу определить на своих стандартных мероприятиях эффект моего слайда/выхода?

Я пытался определить его:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    this.overridePendingTransition(0, android.R.anim.slide_in_left);     
    super.onCreate(savedInstanceState); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    overridePendingTransition(android.R.anim.slide_out_right, 0); 
} 

Чтобы воспроизвести усиление/ослабление эффекта я использую:

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    this.overridePendingTransition(0, android.R.anim.fade_in);     
    super.onCreate(savedInstanceState); 
} 

@Override 
public void onPause() 
{ 
    super.onPause(); 
    overridePendingTransition(android.R.anim.fade_in, 0); 
} 

, но не удалось успешно воспроизвести Это.

Кроме того, я использую этот код на onCreate и onPause, это правильно? Или есть лучшее место, чтобы сказать?

Благодаря

PS: Я видел это New Android 4.0 Screen Transitions Between Activities, но теперь ответ был предусмотрено.

ответ

10

overridePendingTransition() должен быть вызван сразу после запуска нового действия, поэтому вы бы назвали его после startActivity (намерение), например. Чтобы сделать по умолчанию, вы можете создать класс, который расширяет Activity и переопределяет startActivity, onBackPressed() и т. Д., Чтобы переопределить переход. Например:

public class MyActivity extends Activity { 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 

@Override 
public void startActivity(Intent intent) { 
    super.startActivity(intent); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 

@Override 
public void finish() { 
    super.finish(); 
    overridePendingTransition(R.anim.slide_in_transition,R.anim.slide_out_transition); 
} 



} 

Тогда просто расширить MyActivity вместо деятельности в вашей деятельности и переходы должны быть все скольжения по умолчанию.

+0

Переходы по умолчанию: slide_in_left и slide_out_right. Вы использовали другие имена ... так что вы можете определить XML для них? – neteinstein

+2

Обычно я определяю свой собственный, но я не вижу причин, по которым вы не можете использовать значения по умолчанию. – anakin78z

+0

+1 Как я могу позвонить по умолчанию? Мне нужно создать новый xml для значения по умолчанию? – Roylee

Смежные вопросы