Задать текст и изображение на заставке: недопустимый нарисованный тег RelativeLayout - PullRequest
0 голосов
/ 02 сентября 2018

Я следую за кодом по ссылке ниже,

https://forums.xamarin.com/discussion/67821/splash-screen-with-text

Ниже мой код,

splash.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@color/primary"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      android:layout_centerHorizontal="true">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#fff"
        android:text="My test"
        android:layout_marginLeft="5dp"
        android:textSize="18dp"/>
  </LinearLayout>
</RelativeLayout>

но я получаю ошибку

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag RelativeLayout
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:1124)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:1032)
    at android.content.res.Resources.loadDrawableForCookie(Resources.java:2469)
    ... 29 more
  Force finishing activity 1 myapp.SplashActivity

ОС: Lollipop, Xamarin Android

Обновление

Всплеск активности

[Activity(Label = "@string/app_name", MainLauncher = true, LaunchMode = Android.Content.PM.LaunchMode.SingleTop, ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait, Theme = "@style/MySplashTheme")]
public class SplashActivity : AppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        StartActivity(new Intent(this, typeof(ManifestActivity)));

        Finish();
    }
}

styles.xml

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="MySplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/splash</item>
  </style>
</resources>

https://forums.xamarin.com/discussion/67821/splash-screen-with-text

https://forums.xamarin.com/discussion/31091/splash-screen-using-a-layout

Xamarin: заставка с использованием макета

https://docs.microsoft.com/en-gb/xamarin/android/user-interface/splash-screen

https://forums.xamarin.com/discussion/119638/splash-screen-using-android-windowbackground-does-goes-behind-statusbar

Ответы [ 3 ]

0 голосов
/ 02 сентября 2018

Я выполнил ваш макет и работает правильно.

Есть ли у вас основной цвет, объявленный таким образом в colors.xml:

<color name="primary">#3F51B5</color>
0 голосов
/ 02 сентября 2018

Если вы хотите использовать android:windowBackground для установки фона с фоном для действия, вы должны использовать его с ресурсом для рисования, а затем установить ту же тему, что и для вашего действия.

В качестве альтернативы, если вы хотите использовать layout.xml, просто удалите тему (поскольку ее сейчас нет) и просто установите

// set the user interface layout for this activity // the layout file is defined in the project res/layout/main_activity.xml file setContentView(R.layout.activity_main)

Также в этом случае вам нужно будет перейти к следующему действию после задержки, в то время как в предыдущем случае windowbackground было видно в течение времени, когда загружено действие, а затем было запущено намерение, теперь загружен макет (который является теперь задний план), и вскоре намерение срабатывает, поэтому требуется некоторая задержка.

0 голосов
/ 02 сентября 2018

Используйте этот код в вашем файле build.gradle:

android {  
 defaultConfig {  
 vectorDrawables.useSupportLibrary = true  
}  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...