PDA

Ver la Versión Completa : [ CONSULTA ] Imagen fullscreen al iniciar app.


Bongiovi
15/09/13, 17:24:01
No encuentro nada en la documentación sobre esto. Me gustaría poner una imagen a fullscreen al iniciar mi app (se me ocurre la app "Pocket" como ejemplo de lo que digo).

He pensado en una Activity que solo contenga una ImageView y que a los 2 segundos mande un Intent para iniciar la app, pero me parece algo chapuza.

Hay alguna forma mejor de hacer ésto?

Un saludo:ok:

tompad28
15/09/13, 17:30:07
No que yo conozca. Es una buena solución, aunque el equipo de android recomienda no usar splash si no sirve para nada.

Bongiovi
15/09/13, 17:56:03
No que yo conozca. Es una buena solución, aunque el equipo de android recomienda no usar splash si no sirve para nada.

No sabía que esto tenía un nombre xD
Buscándolo como "splash" he conseguido algo de información (básicamente es lo que he comentado antes, iniciando la MainActivity tras x segundos).

Dices que Google no recomienda el uso de splash? Por qué?

Un saludo.

rafaxplayer
15/09/13, 17:56:28
Bueno yo creo que que un splash no muy pesado ni largo le da una estética y una presentación buena a la app , eso si... me gusta que se pueda saltar rápido con un click.

Yo uso una combinación de imágenes en un relativeview con theme no-actionbar para esto y como java este suelo usar:

public class IntroActivity extends SherlockActivity {
protected boolean active = true;
private final int splashTime = 5000;
private TextView version;
private ImageView logo;
private int waited;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_intro);
version=(TextView)findViewById(R.id.textView1);
logo=(ImageView)findViewById(R.id.imageLogo);
logo.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
waited =5000;
}
});
version.setText("Version : " + getVersion(this)+" ");
Thread splashThread = new Thread() {
@Override
public void run() {
try {
waited = 0;
while (active && (waited < splashTime)) {
sleep(100);
if (active) {
waited += 100;
}

}
} catch (InterruptedException e) {

} finally {

openApp();
IntroActivity.this.finish();

}

}
};
splashThread.start();
}

private void openApp() {
finish();
startActivity(new Intent(this, MainActivity.class));

}
public String getVersion(Context context) {
try {
PackageInfo pInfo = context.getPackageManager().getPackageInfo(context .getPackageName(), PackageManager.GET_META_DATA);
return pInfo.versionName;
} catch (NameNotFoundException e) {
return "1.0";
}
}

}

tompad28
15/09/13, 18:32:44
No sabía que esto tenía un nombre xD
Buscándolo como "splash" he conseguido algo de información (básicamente es lo que he comentado antes, iniciando la MainActivity tras x segundos).

Dices que Google no recomienda el uso de splash? Por qué?

Un saludo.

Porque haces esperar al usuario x segundos sólo por vender tu marca, a él no le aportas nada.

Bongiovi
15/09/13, 19:04:44
Mil gracias rafaxplayer por compartir tu código :ok:
No conseguía evitar que al darle al botón "Back" desde la MainActivity se metiera en el Splash X-D

Porque haces esperar al usuario x segundos sólo por vender tu marca, a él no le aportas nada.

Creo que más que "vender la marca" es parte de la estética de la app. Desde luego no es estética "funcional", pero le da un aspecto muy atractivo (para mi gusto).

Un saludo!

kriogeN
15/09/13, 19:22:43
Yo estoy con tompad28, si una splash no va a hacer nada no la pongas. El usuario no quiere aspectos atractivos que no llevan a nada, quiere empezar a usar la app de inmediato desde el primer click.

Yo por ejemplo en una app de un cliente le he puesto una splash, pero porque lo primero que hace la app es conectarse a un servidor y obtener información que necesita desde la primera pantalla. Mientras conecto y bajo los datos le muestro la splash, en cuanto están cargados se inicia la Activity principal.

tompad28
16/09/13, 00:17:17
Yo estoy con tompad28, si una splash no va a hacer nada no la pongas. El usuario no quiere aspectos atractivos que no llevan a nada, quiere empezar a usar la app de inmediato desde el primer click.

Yo por ejemplo en una app de un cliente le he puesto una splash, pero porque lo primero que hace la app es conectarse a un servidor y obtener información que necesita desde la primera pantalla. Mientras conecto y bajo los datos le muestro la splash, en cuanto están cargados se inicia la Activity principal.

Totalmente de acuerdo. Pero vamos, que es mi opinión, y yo no soy nadie. Sin embargo Roman Nurik sí lo es, y parece que opina lo mismo. Echa un vistazo al punto 2:

https://plus.google.com/113735310430199015092/posts/6PwgQPMvK1p

Al final es una decisión personal, en Android las guías de estilo no son obligatorias.