Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978

Рисование на фоне основного Layout-а, возможно ли?

08.09.2014, 17:54. Показов 1853. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть пустая Activity и разметка для нее:
XML
1
2
3
4
5
6
7
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
</RelativeLayout >
Я могу указать для main_layout картинку, которая станет на фон.

Никак не могу сообразить как мне получить Canvas от этого main_layout что бы на нем что-то порисовать, а потом "применить" так, что бы мое рисование попало на фон вместо картинки?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.09.2014, 17:54
Ответы с готовыми решениями:

Рисование на фоне
Пытаюсь рисовать на форме, не на pickture box, напишите пример как добавить фоновую картинку например, я просто много пытался но мало к...

Рисование на фоне
Здравствуйте, программисты. Помогите, пожалуйста, как нарисовать точку на экране и как задать её цвет? хотелось бы видеть нечто вроде...

Рисование в отдельном Layout
Как по нажатию на кнопку нарисовать линию (допустим) в отдельном каком-то layout.

4
 Аватар для Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
08.09.2014, 18:18
Но фоновая картинка останется.

Java
1
2
3
4
5
6
7
8
class MyRelativeLayout extends RelativeLayout {
 
@Override
onDraw(Canvas canvas) {
// рисовать здесь
}
 
}
1
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.09.2014, 19:23  [ТС]
Точно, спасибо, я пытался наследоваться от View и даже в голову не пришло проделать то же с лаяутом!
Но у меня все равно не заливает синим цветом.

главная activity:
Java
1
2
3
4
5
6
7
8
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
класс разметки:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MyRelativeLayout extends RelativeLayout {
 
    public MyRelativeLayout(Context context) {
        super(context);
    }
 
    public MyRelativeLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public MyRelativeLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
 
    @Override
    protected void onDraw(Canvas c) {
        c.drawColor(Color.BLUE);
    }
}
и сам xml:
XML
1
2
3
4
5
6
7
8
9
10
11
<com.example.andtest.MyRelativeLayout 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" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
 
</com.example.andtest.MyRelativeLayout>
Я в onDraw вставлял вывод в консоль, так этот метод даже не вызывается
0
 Аватар для Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
08.09.2014, 19:35
Лучший ответ Сообщение было отмечено Pablito как решение

Решение

А так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class MyRelativeLayout extends RelativeLayout {
 
    public MyRelativeLayout(Context context) {
        super(context);
        setWillNotDraw(false);
    }
 
    public MyRelativeLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        setWillNotDraw(false);
    }
 
    public MyRelativeLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setWillNotDraw(false);
    }
 
    @Override
    protected void onDraw(Canvas c) {
        super.onDraw(c);
        c.drawColor(Color.BLUE);
    }
 
}
Документация:
http://developer.android.com/r... boolean%29
1
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.09.2014, 20:02  [ТС]
заработало, большое спасибо!

Не по теме:

я обычно внимательно читаю форумы и доки до того, как задать вопрос, сегодня что-то туго соображаю

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.09.2014, 20:02
Помогаю со студенческими работами здесь

Рисование на прозрачном фоне формы
Приветствую. Возникла проблема с рисованием на прозрачном фоне формы. Создал простую форму. Сделал её фон прозрачным посредством...

Возможно ли создание TextBox не на своём сайте поверх основного шаблона для дальнейшего ведения логов?
Mr_Sergo, или кто разбирающийся, подскажите пожалуйста, возможно ли создание что-то типа TextBox не на своём сайте просто поверх основного...

Рисование 3d фигур в СИ возможно?
У меня возможно глупый вопрос. Но возможно ли рисовать что-то подобное в СИ? У меня есть массив координат (x, y, z), мне нужно лишь...

Анимированный дизайн смены Layout или просто выдвигаемый layout
Ну, думаю тут и так всё понятно. Я просто не знаю, какие ключевые слова вводить в гугл, всё что попадается это Drawer А мне нужнен просто...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити, на нем лежит Layout (горизонтальный) в котором 2й...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru