android - personalizar - aplicación de pantalla de bienvenida y ocultar la barra de acción
personalizar action bar android studio (3)
¿por qué no agregar al manifiesto el tema de la primera actividad para excluir la barra de acción, y tal vez incluso la barra de notificación?
algo como:
<application
android:allowBackup="true"
android:icon="@drawable/lojacidadao"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="com.example.basicmaponline.Intro"
android:screenOrientation="portrait"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
Por cierto, la razón por la que tiene la barra de acción es porque ha configurado el tema predeterminado para que esté en la etiqueta de la aplicación, por lo que no es una actividad antes que la suya, es realmente su propia actividad de inicio.
Estoy tratando de averiguar cómo es posible ocultar la barra de acción para una actividad de pantalla de inicio. Hice algo que oculta mi barra de acción en mi pantalla de presentación, pero hay un problema: antes de que aparezca la pantalla de presentación, hay una actividad con una barra de acción que aparece brevemente ... y no sé cómo ocultarla !
Mi pantalla de inicio solo aparece cuando tocamos la aplicación por primera vez como una introducción de la aplicación.
Código:
package com.example.basicmaponline;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
public class Intro extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.intro);
Thread timer = new Thread(){
public void run(){
try{
sleep(3000);
}catch (InterruptedException e) {
e.printStackTrace();
}finally{
Intent openMenu = new Intent("com.example.basicmaponline.MENU");
startActivity(openMenu);
}
}
};
timer.start();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
finish();
}
}
Manifiesto
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.basicmaponline"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_GPS"></uses-permission>
<application
android:allowBackup="true"
android:icon="@drawable/lojacidadao"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="com.example.basicmaponline.Intro"
android:screenOrientation="portrait"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.Menu"
android:screenOrientation="portrait"
android:label="@string/app_name">
<intent-filter>
<action android:name="com.example.basicmaponline.MENU" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.Mapa"
android:screenOrientation="portrait"
android:label="@string/map_name">
<intent-filter>
<action android:name="com.example.basicmaponline.MAPA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.Lojas"
android:screenOrientation="portrait"
android:label="@string/lojas_name">
<intent-filter>
<action android:name="com.example.basicmaponline.LOJAS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.InfoLoja"
android:screenOrientation="portrait"
android:label="@string/loja_name">
<intent-filter>
<action android:name="com.example.basicmaponline.INFOLOJA" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.Balcoes"
android:screenOrientation="portrait"
android:label="@string/balcoes_name" >
<intent-filter>
<action android:name="com.example.basicmaponline.BALCOES" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.Entidade"
android:screenOrientation="portrait"
android:label="@string/balcao_name">
<intent-filter>
<action android:name="com.example.basicmaponline.ENTIDADE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.Servicos"
android:screenOrientation="portrait"
android:label="@string/servicos_name">
<intent-filter>
<action android:name="com.example.basicmaponline.SERVICOS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.InfoServico"
android:screenOrientation="portrait"
android:label="@string/servico_name">
<intent-filter>
<action android:name="com.example.basicmaponline.INFOSERVICO" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.basicmaponline.Pesquisar"
android:screenOrientation="portrait"
android:label="@string/pesquisa_name" >
<intent-filter>
<action android:name="com.example.basicmaponline.PESQUISAR" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
Si su objetivo de compilación es SDK 5.0 o superior (el estilo de AppTheme es Theme.AppCompat.Light.DarkActionBar).
<activity
android:name=".Splash"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Tu problema son estas lineas
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
No son necesarios ya que no debería haber una ActionBar
de ActionBar
para llamar, la pantalla de ActionBar
no usa una y debería ser una Activity
completamente separada de las demás.
Necesitas dos Activities
. Uno para la pantalla de bienvenida con su propio diseño. El segundo es para la Activity
principal, que puede ser una pantalla de inicio de sesión o una pantalla de bienvenida, etc.
La clase de pantalla de bienvenida debería verse así.
public class SplashScreen extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.yourlayoutfile);
Thread loading = new Thread() {
public void run() {
try {
sleep(5000);
Intent main = new Intent(SplashScreen.this, Main.class);
startActivity(main);
}
catch (Exception e) {
e.printStackTrace();
}
finally {
finish();
}
}
};
loading.start();
}
}
Archivo XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".SplashScreen" >
// if not using an image replace with whatever is to be shown on the splash screen
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo" />
</LinearLayout>
Ahora la segunda Activity
tiene el diseño con la ActionBar
etc.