以编程方式更改启动画面颜色

时间:2018-01-15 20:32:23

标签: android xamarin drawable oncreate splash

我使用以下方式以编程方式更改初始屏幕颜色,但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);
            }

4 个答案:

答案 0 :(得分:0)

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

所述

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我的问题解决了这个问题:

321

答案 3 :(得分:-1)

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