як додати фонове зображення до діяльності?


Відповіді:


127

використовувати android:backgroundатрибут у вашому xml. Найпростіший спосіб, якщо ви хочете застосувати його до цілої діяльності, - це помістити його в корінь вашого макета. Отже, якщо у вас є RelativeLayout як початок вашого xml, помістіть його сюди:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rootRL"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/background">
</RelativeLayout>

7
На жаль, це може спричинити деякі проблеми ... звичайно, це буде працювати для вашої основної діяльності, але якщо ви відкриєте нову активність із тим самим android: background = "@ drawable / background", як тільки ви повернете емулятор у більшості випадках, а також на деяких пристроях, ви матимете збій із помилкою "Немає пам'яті ..", якщо ваш bgImg має високу роздільну здатність. @Sephy, як би ти вирішив цю проблему?
whyoz

14

Ви можете встановити "фонове зображення" для дії, встановивши android:backgroundатрибути xml наступним чином:

(Ось, наприклад, Візьміть LinearLayout для діяльності та встановіть фонове зображення для макета (тобто опосередковано до діяльності))

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01" 
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" 
              xmlns:android="http://schemas.android.com/apk/res/android"
              android:background="@drawable/icon">
 </LinearLayout>

1
Я помітив, що це добре працює для LinearLayout, але для RelativeLayouts я отримую помилки OOM. Я прочитав безліч дописів decodeBitmap або layout.invalidate (), або дописів Bitmap.recycle тощо ... Як би ви зберегли зображення як фон програми за допомогою RelativeLayouts? Чи слід кешувати будь-яке зображення, яке з'явиться в кількох діях? Яка найкраща практика?
whyoz

2

Помістіть Зображення в папку, яку можна малювати. папка, яку можна малювати, знаходиться в рез. drawable має 5 варіантів drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi drawable-xxhdpi


Яку папку ми маємо використовувати? @Jesvin
jdyg

1

Сьогодні ми маємо використовувати match_parent:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:background="@drawable/background">
</RelativeLayout>

введіть тут опис зображення


1

Ми можемо легко розмістити фонове зображення в PercentFrameLayout за допомогою ImageView. Ми повинні встановити значення атрибута scaleType = "fitXY", і на передньому плані ми також можемо відображати інші подання, такі як текстовий перегляд або кнопка.

 <android.support.percent.PercentFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        >
        <ImageView
            android:src="@drawable/logo"
            android:id="@+id/im1"
            android:scaleType="fitXY"
            android:layout_height="match_parent"
            android:layout_width="match_parent"/>
<EditText android:layout_gravity="center_horizontal"
        android:hint="Enter Username"
        android:id="@+id/et1"
        android:layout_height="wrap_content"
        app:layout_widthPercent="50%"
        app:layout_marginTopPercent="30%"
        />
<Button
    android:layout_gravity="center_horizontal"
    android:text="Login"
    android:id="@+id/b1"
    android:layout_height="wrap_content"
    app:layout_widthPercent="50%"
    app:layout_marginTopPercent="40%"/>
</android.support.percent.PercentFrameLayout>

0

і не забудьте очистити свій проект після написання цих рядків, ви отримаєте повідомлення про помилку у своєму xml-файлі, поки не очистите свій проект у eclipse: Project-> Clean ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.