studio - trucos android 9 samsung
Agrega la pantalla de carga al inicio de la aplicaciĆ³n de Android (7)
Mi aplicación está cargando la página de inicio en 10 segundos. En ese tiempo de 10 segundos la pantalla de Android está en blanco. En ese momento quiero añadir la pantalla de carga. ¿Cómo agregarlo? ¿Y dime en la aplicación cómo saber si la página de inicio se está cargando? ¿Y dime cómo hacerlo en mi aplicación?
Escribe el código:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread welcomeThread = new Thread() {
@Override
public void run() {
try {
super.run();
sleep(10000) //Delay of 10 seconds
} catch (Exception e) {
} finally {
Intent i = new Intent(SplashActivity.this,
MainActivity.class);
startActivity(i);
finish();
}
}
};
welcomeThread.start();
}
Puede crear una pantalla de carga personalizada en lugar de la pantalla de bienvenida. Si muestra una pantalla de inicio durante 10 segundos, no es una buena idea para la experiencia del usuario. Así que es mejor agregar una pantalla de carga personalizada. Para una pantalla de carga personalizada, es posible que necesites algunas imágenes diferentes para que se sienta como un gif. después de eso, agregue las imágenes en la carpeta res
y cree una clase como esta:
public class LoadingScreen {private ImageView loading;
LoadingScreen(ImageView loading) {
this.loading = loading;
}
public void setLoadScreen(){
final Integer[] loadingImages = {R.mipmap.loading_1, R.mipmap.loading_2, R.mipmap.loading_3, R.mipmap.loading_4};
final Handler loadingHandler = new Handler();
Runnable runnable = new Runnable() {
int loadingImgIndex = 0;
public void run() {
loading.setImageResource(loadingImages[loadingImgIndex]);
loadingImgIndex++;
if (loadingImgIndex >= loadingImages.length)
loadingImgIndex = 0;
loadingHandler.postDelayed(this, 500);
}
};
loadingHandler.postDelayed(runnable, 500);
}}
En su MainActivity, puede pasar a la clase LoadingScreen de la siguiente manera:
private ImageView loadingImage;
No te olvides de agregar un ImageView en activity_main. Después de eso, llama a la clase LoadingScreen como esta;
LoadingScreen loadingscreen = new LoadingScreen(loadingImage);
loadingscreen.setLoadScreen();
Espero que esto ayude
Puedes usar la pantalla de bienvenida en tu primera actividad de carga como esta:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread welcomeThread = new Thread() {
@Override
public void run() {
try {
super.run();
sleep(10000); //Delay of 10 seconds
} catch (Exception e) {
} finally {
Intent i = new Intent(SplashActivity.this,
MainActivity.class);
startActivity(i);
finish();
}
}
};
welcomeThread.start();
}
Espero que este código te ayude.
Si la aplicación no está haciendo nada en esos 10 segundos, esto formará un mal diseño solo para que el usuario espere 10 segundos sin hacer nada.
Si hay algo en eso, o si desea implementar una pantalla de inicio con un retraso de 10 segundos, aquí está el Código:
ProgressDialog pd;
pd = ProgressDialog.show(this,"Please Wait...", "Loading Application..", false, true);
pd.setCanceledOnTouchOutside(false);
Thread t = new Thread()
{
@Override
public void run()
{
try
{
sleep(10000) //Delay of 10 seconds
}
catch (Exception e) {}
handler.sendEmptyMessage(0);
}
} ;
t.start();
//Handles the thread result of the Backup being executed.
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
pd.dismiss();
//Start the Next Activity here...
}
};
utilizar ProgressDialog.
ProgressDialog dialog=new ProgressDialog(context);
dialog.setMessage("message");
dialog.setCancelable(false);
dialog.setInverseBackgroundForced(false);
dialog.show();
ocúltelo cuando su UI esté lista con datos. llamada :
dialog.hide();
Las pantallas de bienvenida solo desperdician tu tiempo, ¿verdad? Como desarrollador de Android, cuando veo una pantalla de inicio, sé que algunos desarrolladores pobres tuvieron que agregar un retraso de tres segundos al código.
Luego, tengo que mirar fijamente una imagen durante tres segundos hasta que pueda usar la aplicación. Y tengo que hacer esto cada vez que se lance. Sé qué aplicación abrí. Sé lo que hace. Solo dejame usarlo!
Splash Screens el camino correcto
Creo que Google no se está contradiciendo; El viejo consejo y lo nuevo están juntos. (Dicho esto, todavía no es una buena idea usar una pantalla de inicio que desperdicie el tiempo de un usuario. No hagas eso).
Sin embargo, las aplicaciones de Android tardan algo de tiempo en iniciarse, especialmente en un arranque en frío. Hay un retraso allí que es posible que no pueda evitar. En lugar de dejar una pantalla en blanco durante este tiempo, ¿por qué no mostrarle algo agradable al usuario? Este es el enfoque que defiende Google. No pierda el tiempo del usuario, pero tampoco le muestre una sección en blanco y sin configurar de la aplicación la primera vez que la inicie.
Si observa las actualizaciones recientes de las aplicaciones de Google, verá los usos adecuados de la pantalla de inicio. Echa un vistazo a la aplicación de YouTube, por ejemplo.
public class Splash extends Activity {
private final int SPLASH_DISPLAY_LENGHT = 3000; //set your time here......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
/* Create an Intent that will start the Menu-Activity. */
Intent mainIntent = new Intent(Splash.this,MainActivity.class);
Splash.this.startActivity(mainIntent);
Splash.this.finish();
}
}, SPLASH_DISPLAY_LENGHT);
}
}