ionic-framework - ionic 闪屏和微调器

标签 ionic-framework cordova-plugins splash-screen ionic2

有没有办法在启动画面中自定义微调器? 目前我正在使用 cordova s​​plashscreen 插件,我想更改出现在启动屏幕上的微调器的颜色。

最佳答案

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

关于ionic-framework - ionic 闪屏和微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37202147/

相关文章:

android - 在 ionic 框架和 cordova-plugin-camera 中,用相机拍摄的照片在应用程序中逆时针旋转 90 度

iPhone - 带进度条的启动画面

python - 如何在 Tkinter 的透明启动画面中停止闪烁?

javascript - 如何用换行符替换分号?

node.js - 在准备 Hook 后确定 ionic 构建平台

ionic-framework - ionic plugin 添加 phonegap-plugin-push 导致 404 Not Found 错误

ionic3 - Ionic 3 - 启动画面尺寸

ios - ionic 框架iOS输入焦点问题

cordova - iOS10.3.1 - 未找到 <Cord​​ova/CDVViewController.h> 文件 - 升级后

javascript - 调试 Cordova 插件