Полноэкранное фоновое изображение в действии
Я вижу много приложений, использующих полноэкранное изображение в качестве фона.
Вот пример:

Я хочу использовать это в проекте, лучший способ я нашел до сих пор сделать это, чтобы использовать изображение с большим размером, положил его в ImageView и использовать android: adjustViewBounds="true" для настройки полей
проблема в том, что если экран с очень высоким разрешением, изображение не дотягивает.
еще один вариант, который я подумал, это использовать изображение в FrameLayout, с match_parent на width и height в качестве фона... это растягивает изображение, но я думаю, что результат не очень хороший.
как бы вы это сделали?
13 ответов:
есть несколько способов сделать это.
Вариант 1:
создавайте различные идеальные изображения для разных точек на дюйм и помещайте их в соответствующую папку для рисования. Затем установите
android:background="@drawable/your_imageВариант 2:
добавить одно большое изображение. Использовать Так. В качестве первого ребенка добавьте
ImageView. Установить следующие книги.android:src="@drawable/your_image" android:scaleType = "centerCrop"
другой вариант-добавить одно изображение (не обязательно большое) в чертежи (назовем его backgroung.jpg), создайте ImageView iv_background в корне вашего xml без атрибута "src". Затем в методе onCreate соответствующей активности:
/* create a full screen window */ requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.your_activity); /* adapt the image to the size of the display */ Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource( getResources(),R.drawable.background),size.x,size.y,true); /* fill the background ImageView with the resized image */ ImageView iv_background = (ImageView) findViewById(R.id.iv_background); iv_background.setImageBitmap(bmp);нет обрезки, нет много изображений разного размера. Надеюсь, это поможет!
вы должны поместить изображения различного размера в следующую папку
для более подробной информации посетите этот ссылке
ldpi
mdpi
hdpi
xhdpi
xxhdpi
и использовать RelativeLayout или LinearLayout фон вместо использования ImageView в качестве следующего примера
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/your_image"> </RelativeLayout>
а как же
android:background="@drawable/your_image"на основной макет вашей деятельности?
таким образом, вы также можете иметь различные изображения для различных плотностей экрана, поместив их в соответствующие
res/drawable-**dpiпапки.
использовать
android:background="@drawable/your_imageв вашей деятельности очень первый линейный или относительный макет.
Если вы хотите, чтобы ваше изображение отображалось за прозрачной панелью действий, поместите следующее в определение стиля вашей темы:
<item name="windowActionBarOverlay">true</item> <item name="android:windowActionBarOverlay">true</item>наслаждайтесь!
прошло некоторое время с тех пор, как это было опубликовано, но это помогло мне.
вы можете использовать вложенные макеты. Начните с RelativeLayout, и поместите свой ImageView в этом.
установите высоту и ширину для match_parent, чтобы заполнить экран.
установите scaleType= "centreCrop", чтобы изображение соответствовало экрану и не растягивалось.
затем вы можете поместить в любые другие макеты, как обычно, как LinearLayout ниже.
вы можете использовать Android:Альфа чтобы установить прозрачность изображения.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/image" android:alpha="0.6"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="There"/> </LinearLayout> </RelativeLayout>
в строках с ответом NoToast вам нужно будет иметь несколько версий "your_image" в вашем res / drawable-ldpi, mdpi, hdpi, x-hdpi (для больших экранов xtra), удалить присваиваем и сохранить android: adjustViewBounds= "true"
добавить
android:background="@drawable/your_image"внутри вашего Relativelayout / Linearlayout Работал.
Если у вас есть bg.png в качестве фонового изображения, то просто:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world"/> </RelativeLayout>
самый простой способ:
Шаг 1: Откройте AndroidManifest.xml-файл
Шаг 2: Найдите
android:theme="@style/AppTheme" >Шаг 3: изменить на
android:theme="@style/Theme.AppCompat.NoActionBar" >Шаг 4: Затем Добавьте ImageView & Image
Шаг 4: Вот и все!
three step for put background1)Вы должны выбрать, как картина. например : Введите описание изображения здесь
2) затем вы копируете эту картинку в drawable. предупреждение: вы должны выбрать типы короткие для имени изображения.
Введите описание изображения здесь
3) заходишь на страницу xml предназначенную и пишешь:
android: background= " id picture" например, мой идентификатор изображения @холст/скачать.
Введите описание изображения здесь
готово.
Comments