Я создаю небольшую игру для задания по программированию.Я пытаюсь понять, как правильно установить фон, но я не могу понять.
У меня есть две линейные компоновки в моем main.xml
;у одного фоновый цвет, а у другого макета внутри фоновое изображение (прозрачный PNG).Когда я запускаю приложение, оно отображается нормально:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#aacceeff"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
>
</LinearLayout>
</LinearLayout>
Однако теперь мне нужно добавить анимацию.Для этого я создал объект View, который загружает изображения и анимирует их.Однако теперь мне нужно установить представление содержимого из основного действия на экземпляр этого нового объекта представления.Когда я это делаю, я получаю исключение нулевого указателя, потому что он не может найти линейный макет с идентификатором background
:
BitmapDrawable tiledBackground = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.background));
LinearLayout backgroundLayout = (LinearLayout) findViewById(R.id.background);
tiledBackground.setTileModeX(Shader.TileMode.REPEAT);
backgroundLayout.setBackgroundDrawable(tiledBackground); //backgroundLayout is null
Я думаю, это потому, что представление больше не является представлением, указанным в main.xml
.Если я удаляю этот код, код работает нормально, но я получаю черный фон.Я попытался переместить этот конкретный фрагмент в пользовательский вид и установить фон для изображения, но затем я получаю изображение с черным фоном;что я на самом деле хочу, так это прозрачное изображение с фоновым цветом, просвечивающим сквозь него.
Наверное, я пытаюсь понять, как заставить пользовательское представление использовать макет, который я определил в main.xml
или найдите способ указать цвет фона и фона, который можно нарисовать для пользовательского представления.