Создать плиточный фон из изображения или <LinearLayout> / <GridView> и т. Д.

1

Мне интересно, как новый разработчик Android (10+ лет С# OOP), который был бы лучшим способом создать простой повторяющийся фон. Фон будет согласован независимо от размера экрана, плотности или ориентации. Я прочитал руководство разработчика Android Developers Dev о таких вещах, как поддержка нескольких экранов, девять патчей и т.д. Я видел такие обучающие программы, как этот (http://androidforbeginners.blogspot.com/2010/06/how-to-tile -background-image-in-android.html), рассказывающий вам, как вы можете использовать изображение и повторять его.

Конечно, используя изображение, вы должны предоставить несколько изображений для нескольких плотностей или масштабирования растровых изображений и пикселизации. Для сложного фонового рисунка я вижу, как это может произойти. Но мой шаблон - простой шаблон сетки, так что нет лучшего способа использовать только xml?

Я посмотрел GridView и TableLayout, и оба позволили мне установить цвет фона, указать ширину/высоту ячейки, но я не видел способа указать цвет линии сетки.

На данный момент я использую чуть более старый 2.3.3 api, так как это самая большая версия, которая в настоящее время используется. Я не подозреваю, что мне понадобится много рук, просто хороший хороший совет от тех, кто знает лучше, чем я.

Спасибо, JB

Теги:

1 ответ

6
Лучший ответ

Вы можете создать такой способ:

<?xml version="1.0" encoding="utf-8"?>

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="AndroidPuzzlesSolver/@drawable/bg_tile"
        android:tileMode="repeat"
        android:dither="true" />

Поместите вышеописанное в файл "background.xml" в папке с возможностью переноса. Затем вы можете использовать его в своем макете следующим образом:

<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/background">

Вы можете использовать фон со всеми макетами.

Я не думаю, что есть готовый вариант повторного повтора, например, показ одного изображения в некоторых местах, а другой - в некоторых других. Если вы хотите что-то вроде этого, вам, вероятно, потребуется реализовать собственный View и переопределить метод onDraw. Вы можете использовать FrameLayout для объединения этого фонового представления с любыми другими элементами.

  • 0
    Но в вашем Drawable bg_tile не должен иметь разное dpi для разных размеров экрана и желаний (или пикселизации риска)? Я не говорю, что это неприемлемо, просто хочу убедиться, что я понимаю, что вы пытаетесь обучить меня.
  • 0
    Это может быть по-другому. Однако XML-код не меняется. Я обнаружил, что в подобных случаях нет необходимости использовать разные изображения. Например, у вас может быть только одно изображение в формате mdpi или ldpi. Поскольку ваше изображение будет повторяться в любом случае (и вам необходимо позаботиться о том, чтобы оно подходило как для горизонтального, так и для вертикального повтора), на самом деле не имеет значения, масштабируется ли базовое изображение вверх или вниз.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню