ionic framework - you - Ionic splash screen and spinner
splash ionic size (2)
¿Hay alguna manera de personalizar el spinner en la pantalla de bienvenida? Actualmente estoy usando el plugin splashscreen de cordova y quiero cambiar el color del spinner que aparece en la pantalla de inicio.
Proporcionar color al ion-spinner
no es difícil. Puedes hacer esto
css
.spinner svg {
width: 28px;
height: 28px;
stroke: #444;
fill: #444;
}
html
<ion-spinner icon="circles "class="spinner-energized"></ion-spinner>
según Ionic Docs .
En platforms/android/src/org/apache/cordova/splashscreen/SplashScreen.java
, en la parte superior:
import android.graphics.drawable.Drawable;
import android.content.res.Resources;
Y más abajo en el fondo, reemplace con esta función:
// Show only spinner in the center of the screen
private void spinnerStart() {
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
spinnerStop();
spinnerDialog = new ProgressDialog(webView.getContext());
spinnerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
spinnerDialog = null;
}
});
spinnerDialog.setCancelable(false);
spinnerDialog.setIndeterminate(true);
Resources activityRes = cordova.getActivity().getResources();
int spinnerResId = activityRes.getIdentifier("customspinner", "drawable", cordova.getActivity().getPackageName());
Drawable customSpinner = activityRes.getDrawable(spinnerResId);
RelativeLayout centeredLayout = new RelativeLayout(cordova.getActivity());
centeredLayout.setGravity(Gravity.CENTER);
centeredLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
ProgressBar progressBar = new ProgressBar(webView.getContext());
progressBar.setIndeterminateDrawable(customSpinner);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
progressBar.setLayoutParams(layoutParams);
centeredLayout.addView(progressBar);
spinnerDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
spinnerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
spinnerDialog.show();
spinnerDialog.setContentView(centeredLayout);
}
});
}
En platforms/android/res/drawable
- agregue la carpeta si no existe - agregue el archivo customspinner.xml
:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="360">
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<size android:width="76dip" android:height="76dip" />
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#FFFFFFFF"
android:endColor="#00FFFFFF"
android:angle="0"
/>
</shape>
</rotate>
Respuesta original aquí: Pantalla de bienvenida de Cordova cambia el color del girador en Android