Ionic framework 离子闪屏和旋转器

Ionic framework 离子闪屏和旋转器,ionic-framework,cordova-plugins,splash-screen,ionic2,Ionic Framework,Cordova Plugins,Splash Screen,Ionic2,有没有办法在闪屏中自定义微调器? 目前我正在使用cordova splashscreen插件,我想更改spinner在splashscreen上显示的颜色 为离子旋转器提供颜色并不困难。你可以这样做 css html 根据平台/android/src/org/apache/cordova/splashscreen/splashscreen.java中的,顶部: import android.graphics.drawable.Drawable; import android.content.

有没有办法在闪屏中自定义微调器?
目前我正在使用cordova splashscreen插件,我想更改spinner在splashscreen上显示的颜色

为离子旋转器提供颜色并不困难。你可以这样做
css

html



根据
平台/android/src/org/apache/cordova/splashscreen/splashscreen.java中的

,顶部:

import android.graphics.drawable.Drawable;
import android.content.res.Resources;
再向下移动底部,使用此功能替换:

 // 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);
        }
    });
}

platforms/android/res/drawable
中-如果文件夹不存在,则添加该文件夹-添加文件
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> 


原始答案如下:

我正在使用cordova闪屏插件,该插件带有一个属性,即“”来添加微调器。您提供的解决方案是针对本例中未使用的ionic spinner。您提供的任何代码都很难猜测您正在使用什么以及您将获得什么。但是你能告诉我你在屏幕上使用的是什么类型的旋转器吗。以及为什么不使用ionic spinner。这不能与默认启动屏幕一起使用。是否可以在启动屏幕中使用默认spinner与任何其他旋转(或其他加载程序)一起更改。@Neotrix您可以将任何需要的代码放入
customspinner.xml
中创建不同的加载程序,它不必是一个旋转器。文件是定义加载程序的方式。
 // 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);
        }
    });
}
<?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>