Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.86
sm100
2 / 2 / 0
Регистрация: 30.12.2012
Сообщений: 29
#1

Наложение изображений - Программирование Android

18.02.2013, 17:53. Просмотров 6314. Ответов 45
Метки нет (Все метки)

Подскажите пожалуйста, как наложить изображение на изображение. Пробую вот так: но последующая картинка стирает предыдущую.
Java
1
2
3
4
5
6
7
8
9
10
11
12
ImageView btn1 = new ImageView(this);
    btn1.setLayoutParams(LayoutParams1);
 
    InputStream in2 = getClass().getResourceAsStream("/res/raw/_ramka.png"); 
    Bitmap bmp2 = BitmapFactory.decodeStream(in2);
    btn1.setImageLevel(2);
    btn1.setImageBitmap(bmp2);
    
    InputStream in = getClass().getResourceAsStream("/res/raw/"+str+".png"); 
    Bitmap bmp = BitmapFactory.decodeStream(in);
    btn1.setImageLevel(1);
    btn1.setImageBitmap(bmp);
Например, в одном файле хранится рамка, а в другом картинка....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2013, 17:53     Наложение изображений
Посмотрите здесь:

Наложение изображений на кнопке из кода - Программирование Android
Други, подскажите начинающему. Как можно наложить на кнопку бэкграунд и иконку. Т.е. 2 изображения из кода. Кнопки создаются динамически...

Наложение на ScrollView - Программирование Android
Добрый день. Вот такая проблема, у меня сверху ScrollView лежит еще один блок LinearLayout. Как сделать чтобы в этих блоках...

Наложение элементов интерфейса - Программирование Android
Вопрос вот в чем: можно ли расположить элементы интерфейса, чтобы их области пересекались? Например можно ли расположить пару кнопок...

ActionBar Tabs наложение вкладок - Программирование Android
Здравствуйте! Вот мой листенер на табы: package com.contedevel.timetable; import android.app.ActionBar.Tab; import...

OpenGL наложение текстуры, падает приложение - Программирование Android
после того как выполняю gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, uvCoordsBuffer);, метод drawElements крешит приложение с логами, вобще...

Кэширование изображений - Программирование Android
Добрый День Ув. Программисты. Приложение нуждается в Кэшировании изображений, загруженных с сервера. Вопрос: Как осуществить? ...

Просмотр изображений - Программирование Android
Пытаюсь сделать просмотр изображений, но не знаю с чего начать) Суть такая: на флешке есть папки с изображениями (sdcard/images1,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 18:30     Наложение изображений #2
ставьте рамку как background.
sm100
2 / 2 / 0
Регистрация: 30.12.2012
Сообщений: 29
18.02.2013, 20:00  [ТС]     Наложение изображений #3
Спасибо за подсказку. Попробовал сделать вот так:
Java
1
2
3
4
5
6
7
    ImageView btn1 = new ImageView(this);
    btn1.setLayoutParams(LayoutParams1);
   InputStream in = getClass().getResourceAsStream("/res/raw/"+str+".png"); 
    Bitmap bmp = BitmapFactory.decodeStream(in);
    btn1.setImageBitmap(bmp);
 
    btn1.setBackgroundResource(R.raw._ramka);
Но, и в этом случае, если загружается изображение, то подложка стирается. А хорошо бы научиться складывать изображения. Например, на рамку сверху накладывать изображение так, чтобы оставалась рамка.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 20:12     Наложение изображений #4
в последнем коде ничего стираться не должно.

Добавлено через 44 секунды
контент в отметили в имедже с рамкой?
или хотя бы сделали рамку больше чем изображение?

Добавлено через 3 минуты
http://habrahabr.ru/post/113623/
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
18.02.2013, 22:29     Наложение изображений #5
вообщето в API есть уже готовое решение для вашей задачи, зовётся LayerDrawable кстати его же можно создать в xml а не из кода http://developer.android.com/guide/t...html#LayerList
настоятельно рекомендую
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 22:39     Наложение изображений #6
если нужна, например, рамка, всегда юзается nine-patch, для него ни кода ни xml не нужно, в LayerList не указать с какого места должен начинаться контент и какая область рамки должна растягиваться.
хоть бы по моей ссылке перешли прежде чем такое писать.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
18.02.2013, 22:41     Наложение изображений #7
Цитата Сообщение от V0v1k Посмотреть сообщение
LayerList не указать с какого места должен начинаться контент
а я знаю что можно, да что уж там,сам делал и из xml и из кода
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 22:42     Наложение изображений #8
Цитата Сообщение от YAUHEN Посмотреть сообщение
а я знаю что можно, да что уж там,сам делал и из xml и из кода
подскажите как.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
18.02.2013, 22:48     Наложение изображений #9
XML
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="utf-8"?>
<[URL="http://developer.android.com/guide/topics/resources/drawable-resource.html#layerlist-element"]layer-list[/URL]
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <[URL="http://developer.android.com/guide/topics/resources/drawable-resource.html#layerlist-item-element"]item[/URL]
        android:drawable="@[package:]drawable/[I]drawable_resource[/I]"
        android:id="@[+][[I]package[/I]:]id/[I]resource_name[/I]"
        android:top="[I]dimension[/I]"
        android:right="[I]dimension[/I]"
        android:bottom="[I]dimension[/I]"
        android:left="[I]dimension[/I]" />
</layer-list>
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension"

вместо dimension подставь свой паддинг
из кода

Добавлено через 1 минуту
всё зависит от того какая рамка, если просто жырный stroke одного цвета поверх другого - то можно обойтись и так

Добавлено через 1 минуту
только когда будете создавать дроваблы из кода - не забывайте setBounds вызывать, без них не заведётся
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 22:51     Наложение изображений #10
а как быть с адаптацией размеров рамки под размер контента? а с коректным растягиванием рамки?

Добавлено через 1 минуту
а как быть с банальной заменой адной рамки на другую? высчитывать новые размеры линейкой?

Добавлено через 1 минуту
мягко говоря hard code.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
18.02.2013, 22:55     Наложение изображений #11
Цитата Сообщение от V0v1k Посмотреть сообщение
адптацие размеров рамки под размер контента
сетишь рамку в качестве бэкграунда вьюхе и ставишь паддинг


Цитата Сообщение от V0v1k Посмотреть сообщение
а с коректным растягиванием рамки
всё коректно растянется если это простейшая рамка (2 цвета)

если это не простая рамка - то конечно надо nine-patch

Цитата Сообщение от V0v1k Посмотреть сообщение
а как быть с банльной заменой адной рамки на другую
а в какхи случаях это необхадимо?

Добавлено через 2 минуты
Цитата Сообщение от V0v1k Посмотреть сообщение
мягко говоря hard code.
вовсе нет, я не считаю признаком плохого тона использовать xml вместо png там где это возможно
sm100
2 / 2 / 0
Регистрация: 30.12.2012
Сообщений: 29
18.02.2013, 23:03  [ТС]     Наложение изображений #12
Все понял. Фон нужно было сделать прозрачным у картинки для наложения.

Метод работает
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 23:05     Наложение изображений #13
Цитата Сообщение от YAUHEN Посмотреть сообщение
сетишь рамку в качестве бэкграунда вьюхе и ставишь паддинг
ну вот уже и сами отказались от своей идеи.


Цитата Сообщение от YAUHEN Посмотреть сообщение
а в какхи случаях это необхадимо?
заказчик сказал заменить на воооон ту, голубенькую с закрутасами по углам)

Цитата Сообщение от YAUHEN Посмотреть сообщение
вовсе нет, я не считаю признаком плохого тона использовать xml вместо png там где это возможно
использовать числа(которые могут и не совпасть при банальном изменении девайса или размеров) вместо того чтобы четко указать с какого по какой пиксель, высчитывать их линейкой...
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
18.02.2013, 23:08     Наложение изображений #14
Цитата Сообщение от V0v1k Посмотреть сообщение
ну вот уже и сами отказались от своей идеи.
вообщето я имел ввиду сетить дровабл ранее полученый описанным мной путём

Цитата Сообщение от V0v1k Посмотреть сообщение
заказчик сказал заменить на воооон ту, голубенькую с закрутасами по углам)
я оговорился, если рамка простая



Цитата Сообщение от V0v1k Посмотреть сообщение
которые могут и не совпасть
в каком случае и какие числа не совпадают?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 23:14     Наложение изображений #15
Цитата Сообщение от YAUHEN Посмотреть сообщение
вообщето я имел ввиду сетить дровабл ранее полученый описанным мной путём
и как это поможет одному слою четко входить в рамки другого слоя?

Цитата Сообщение от YAUHEN Посмотреть сообщение
в каком случае и какие числа не совпадают?
android:top="dimension"
android:right="dimension"
android:bottom="dimension"
android:left="dimension"

Добавлено через 2 минуты
Цитата Сообщение от YAUHEN Посмотреть сообщение
я оговорился, если рамка простая
давайте не будем искать сложных решений для простых задач)
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
18.02.2013, 23:15     Наложение изображений #16
Цитата Сообщение от V0v1k Посмотреть сообщение
и как это поможет одному слою четко входить в рамки другого слоя?
дроваблом является лэйр дровабл который вы описали в хмл или из кода так что там уже всё наложено



Цитата Сообщение от V0v1k Посмотреть сообщение
android:top="dimension" android:right="dimension" android:bottom="dimension" android:left="dimension"
и что может не совпасть?

Цитата Сообщение от V0v1k Посмотреть сообщение
давайте не будем искать сложных решений для простых задач)
для меня и то и другое - просто
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
18.02.2013, 23:17     Наложение изображений #17
Полностью согласен с V0v1k. 9 patch - наше все. После того как с десяток приложений с кучей экранов сверстаете - поймете. И память экономят очень, кстати. А про наложение изображений - тут вариантов куча. Самый практичный V0v1k показал - задник - на бекграунд, переднее изображение на src. Можно еще каждое изображение сделать отдельным ImageView и разместить одно над другим во FrameLayout или RelativeLayout. Не забываем регулировать размеры изображений, отступы и предусматривать прозрачные фоны в верхних изображениях
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 23:25     Наложение изображений #18
Цитата Сообщение от YAUHEN Посмотреть сообщение
и что может не совпасть?
контент. на одном девайсе будет налезать на рамку, на другом отставать от рамки например.


Цитата Сообщение от YAUHEN Посмотреть сообщение
для меня и то и другое - просто
ну да, поставить пару точек в nine-patch то же самое что писать xml-ки и хардкодить размеры, расчитывать их линейкой и перерасчитывать при изменении контента или рамки.

Добавлено через 1 минуту
Цитата Сообщение от kvaka Посмотреть сообщение
После того как с десяток приложений с кучей экранов сверстаете - поймете.
вот именно, в нем говорит нехватка опыта)

Добавлено через 26 секунд
а еще встретит заказчика который будет дизайн менять каждую неделю....

Добавлено через 1 минуту
Цитата Сообщение от YAUHEN Посмотреть сообщение
я оговорился, если рамка простая
ладно, скажу по другому, лучше использовать более универсальный и устойчивый к изменениям метод...
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
18.02.2013, 23:31     Наложение изображений #19
Цитата Сообщение от V0v1k Посмотреть сообщение
контент. на одном девайсе будет налезать на рамку, на другом отставать от рамки например.
если задать дименшны в лэйер дровабле через dp ссылкой на ресурсы дименшнов и задать такой же паддинг во вьюшке которая будет в качестве бэкграунда держать ваш дровабл то ничего вылазить и налазить не будет, конечно если использовать px - так не получится. но думаю не стоит вам более опытнм обьяснять почему люди используют dp вместо px раз уж вы начали говорить про опыт.

Цитата Сообщение от V0v1k Посмотреть сообщение
а еще встретит заказчика который будет дизайн менять каждую неделю...
я не буду использовать nine-patch там где это избыточно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2013, 23:42     Наложение изображений
Еще ссылки по теме:

Загрузка изображений - Программирование Android
Здравствуйте. Есть база изображений, например на web сервере, хостинге или соц сети. Задумка проста. Ни каких меню и кнопок, только...

Вывод изображений и текста из БД - Программирование Android
вопрос знатокам :в приложении из базы данных выводится текст,среди этого текста есть картинки,хранящиеся так же в бд.сам вопрос в том как...

Создание кэша изображений - Программирование Android
Нужна помощь в создании в приложении кэша для изображений типа DiscLruCache

Загрузка изображений на сервер - Программирование Android
Здравствуйте. Пытаюсь загрузить изображение на свой сервер в интернете. Нашел вот такой пример: import java.io.DataInputStream; import...

ScrollView для изображений - Программирование Android
при загрузке картинок в ScrollView возникает следующая ситуация до 12 картинок все нормально а 13 картинку уже недьзя переполняется буфер...


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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.02.2013, 23:42     Наложение изображений #20
Цитата Сообщение от YAUHEN Посмотреть сообщение
я не буду использовать nine-patch там где это избыточно.
избыточность - это написание xml-лок там где они не нужны.

Добавлено через 2 минуты
Цитата Сообщение от YAUHEN Посмотреть сообщение
если задать дименшны в лэйер дровабле через dp ссылкой на ресурсы дименшнов и задать такой же паддинг во вьюшке которая будет в качестве бэкграунда держать ваш дровабл то ничего вылазить и налазить не будет
ага, будет прямо поверх рамки (закрывать рамку)

Добавлено через 59 секунд
или что вы имели ввиду?
Yandex
Объявления
18.02.2013, 23:42     Наложение изображений
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru