首页 文章

离子闪屏和旋转器

提问于
浏览
3

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

2 回答

  • 3

    platforms/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 splash screen change spinner color on android

  • 0

    很好地为 ion-spinner 提供颜色并不困难 . 你可以这样做
    CSS

    .spinner svg {
      width: 28px;
      height: 28px;
      stroke: #444;
      fill: #444;
    }
    

    HTML

    <ion-spinner icon="circles "class="spinner-energized"></ion-spinner>
    

    按照Ionic Docs .

相关问题