【问题标题】:Change Splash Screen Color Programmatically以编程方式更改初始屏幕颜色
【发布时间】:2018-01-15 20:32:22
【问题描述】:

我使用以下方式以编程方式更改启动画面颜色,但DrawableLayer的FindDrawableLayerById返回一个空值。

protected override void OnCreate(Bundle bundleSavedInstanceState)
            {
                base.OnCreate(bundleSavedInstanceState);

                LayerDrawable layerDrawable = (LayerDrawable)ContextCompat.GetDrawable(this, Resource.Drawable.XMLFileSplashScreen);

                GradientDrawable gradientDrawable = (GradientDrawable)layerDrawable.FindDrawableByLayerId(Resource.Id.itemSplashScreenColor);

                gradientDrawable.SetColor(Resource.Color.Blue);
            }

【问题讨论】:

  • 请出示您的XMLFileSplashScreen文件,有什么错误吗? NullPointException?
  • 您好,您的问题解决了吗?请出示您的XMLFileSplashScreen 文件好吗?所以我会帮你的。

标签: android xamarin drawable oncreate splash-screen


【解决方案1】:

您可以将layer-list<item android:drawable=”@color/colorPrimary” /> 一起使用,如here 所述

【讨论】:

  • 我的意思是编程。
【解决方案2】:

如果您在 oncreate 方法中有这样的线性或相对布局设置背景颜色:

LinearLayout chglayout = (LinearLayout ) findViewById(R.layout.the_id);
chglayout.setBackgroundColor(Color.parseColor("#000000"));

【讨论】:

    【解决方案3】:

    我的问题由此解决:

        <item name="android:windowDisablePreview">true</item>
    

    【讨论】:

      【解决方案4】:
      final FrameLayout frm = (FrameLayout)findViewById(R.id.FramId);
      
      frm.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {        
              frm.setBackgroundColor(getResources().getColor(R.color.colorEndBlue));
          }
      });
      

      【讨论】:

        猜你喜欢
        • 2014-02-01
        • 1970-01-01
        • 2015-12-06
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-21
        相关资源
        最近更新 更多