La façon dont je gère dans mes jeux Android est d'appeler la ligne suivante dans le onCreate() de mon activité
requestWindowFeature(Window.FEATURE_NO_TITLE);
Je peux alors tourner la pleine capacité hors écran et en utilisant le code suivant dans ma classe d'activité (habituellement appelée à partir d'une option de menu) (la variable m_contentView est la vue depuis findViewById() en utilisant l'identifiant que vous avez utilisé lors de l'appel setContentView() dans votre sur créer)
private void updateFullscreenStatus(boolean bUseFullscreen)
{
if(bUseFullscreen)
{
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
else
{
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
m_contentView.requestLayout();
}
J'utilise cette technique dans tous mes jeux sans problème.
Pourquoi dites-vous
requestWindowFeature (Window.FEATURE_NO_TITLE); n'est pas une option bien sûr
?
:: EDIT ::
Eh bien, si vous essayez de montrer dynamiquement et se cacher pendant la durée de l'activité, je ne sais pas si vous pouvez le faire avec le titre officiel de la fenêtre en raison de la note qui a Une chose que vous pourriez faire est de mettre en place votre propre barre de titre et de montrer et de masquer de façon dynamique que ... J'ai mis en place cet exemple qui devrait être configurez-vous sur la bonne voie
Voici le fichier de configuration
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:fadingEdgeLength="0sp"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myTitleBarLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/myTitleBarTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:paddingTop="4dip"
android:paddingBottom="4dip"
android:paddingLeft="6dip"
android:textStyle="bold"
android:shadowColor="#BB000000"
android:shadowRadius="3.0"
android:shadowDy=".25"
/>
<View
android:layout_width="fill_parent"
android:layout_height="1dip"
android:background="#CCEEEEEE"
android:padding="10dip"
/>
</LinearLayout>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<!-- Insert your regular layout stuff here -->
<Button android:id="@+id/toggle_title_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Toggle Title"
/>
</ScrollView>
</LinearLayout>
Et voici le code pour l'activité principale qui vous permettra de basculer notre coutume barre de titre et de
package com.snctln.test.HelloGridView;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class HelloGridView extends Activity
{
public void onCreate(Bundle savedInstanceState)
{
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView)this.findViewById(R.id.myTitleBarTextView);
tv.setBackgroundColor(0xFF848284);
tv.setTextColor(0xFFFFFFFF);
Button toggleTitleButton = (Button)this.findViewById(R.id.toggle_title_button);
toggleTitleButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
LinearLayout ll = (LinearLayout)findViewById(R.id.myTitleBarLayout);
if(ll.getVisibility() == View.GONE)
{
ll.setVisibility(View.VISIBLE);
}
else
{
ll.setVisibility(View.GONE);
}
}
});
}
}
Il ne semble pas parfait, mais vous pouvez toujours jouer avec les mise en page un peu plus pour le faire.
alt text http://i39.tinypic.com/120sfp1.png
Mon autre pensée est que si vous voulez juste pour cacher tout pour afficher une barre de progression pourquoi ne pas utiliser le ProgressDialog?
Cette classe est assez facile à utiliser ...
progressDlg = ProgressDialog.show(context, getString(R.string.progress_dialog_title_prepare), getString(R.string.progress_dialog_body_prepare));
// do long running operation
if(operationFailed)
{
progressDlg.cancel();
}
else
{
progressDlg.dismiss();
}
Alors vous voulez pouvoir l'allumer et l'éteindre à volonté? –
Oui. Pour être plus précis, je veux montrer une barre de progression, mais cela est couplé avec le titre. – yanchenko