Копирование изображений между ImageView 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Копирование изображений между ImageView



Если вам надо скопировать изображение из одного ImageView в другой, то можно получить объект Drawable через метод getDrawable() и присвоить ему второму компоненту.

 

ImageView ivSource = (ImageView) findViewById(R.id.sourceImageView); // 1-й компонент с какой-то картинкой

ImageView ivTarget = (ImageView) findViewById(R.id.targetImageView); // 2-й компонент без картинки

 

Drawable drawable = ivSource.getDrawable(); // получим картинку у первого компонента

ivTarget.setImageDrawable(drawable); // присвоим второму

Примеры

В моих статьях можно найти примеры использования ImageView.

Toast - всплывающие сообщения (Программное создание ImageView и через разметку).

Загрузка картинок с плавными переходами

Загрузка изображения с карточки в ImageView

Сохранение картинки из ImageView на SD-карту

Вращение

Анимация пульсации ImageView

Анимация вращения через XML

Продвинутые приёмы работы с ImageView (Закрытая зона/4-й месяц)

Библиотеки

CustomShapeImageView - позволяет создавать рамки разных форм.

MikeOrtiz/TouchImageView - расширенный вариант ImageView, который поддерживает касания экрана и масштабирование.

Реклама


 

Drawable. Фигуры и градиенты

Shape и ShapeDrawable

Фигуры являются подмножеством Drawable-ресурсов.

Данный вид ресурсов на основе класса ShapeDrawable позволяет описывать простые геометрические фигуры, указывая их размеры, фон и контур с помощью тега <shape>.

Можно создавать ресурсы фигур на основе стандартных фигур вроде прямоугольника, эллипса, линии. Для использования ресурсов фигур нужно создать в подкаталоге res/drawable XML-файл, в котором будет присутствовать тег <shape>, который в свою очередь может содержать дочерние элементы <corners>, <gradient>, <padding>, <size>, <solid>, <stroke>.

Имя файла без расширения будет служить идентификатором (ID): R.drawable.filename в Java-коде и @[package:]drawable/filename в XML-файлах.

Элементы фигуры

<shape>

Фигура. Является корневым элементом в XML.
Атрибуты:

· xmlns:android - обязательный атрибут со строкой "http://schemas.android.com/apk/res/android"

· android:shape - задаёт тип фигуры: rectangle (прямоугольник, заполняющий элемент, является фигурой по умолчанию), oval (овал), line (линия, требуется также наличие элемента <stroke> для задания ширины линии), ring (окружность, для данной фигуры можно использовать атрибуты android:innerRadius, android:innerRadiusRatio, android:thickness, android:thicknessRatio, android:useLevel)

· <corners> - создаёт закругленные углы для фигуры. Только для прямоугольника. Возможные атрибуты: android:radius, android:topLeftRadius, android:topRightRadius, android:bottomLeftRadius, android:bottomRightRadius

· <gradient> - задаёт градиентную заливку для фигуры. Возможные атрибуты: android:angle, android:centerX, android:centerY, android:centerColor, android:endColor, android:gradientRadius, android:startColor, android:type, android:useLevel

· <padding> - отступы. Возможные атрибуты: android:left, android:top, android:right, android:bottom

· <size> - размеры фигуры. Возможные атрибуты: android:height, android:width

· <solid> - сплошной цвет для фигуры. Возможные атрибуты: android:color

· <stroke> - контур фигуры. Возможные атрибуты: android:width, android:color, android:dashGap (расстояние между черточками), android:dashWidth (длина пунктирной черточки)

Rectangle (Прямоугольник)

shape_rect.xml - Атрибут android:shape здесь необязателен: rectangle — это значение по умолчанию.

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="#0377BE"/> </shape> </item></selector>

Пример с градиентным прямоугольником в качестве разделителя

Создадим файл separator.xml:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <gradient android:angle="0" android:centerColor="#47CF4F" android:endColor="#000000" android:startColor="#000000" /> </shape>

В разметке приложения добавим код:

<TextView android:id="@+id/tvSource" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <View android:layout_width="wrap_content" android:background="@drawable/separator" android:layout_height="1dp" /> <TextView android:id="@+id/tvResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> <View android:layout_width="wrap_content" android:background="@drawable/separator" android:layout_height="3dp" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" />

У первого разделителя ширина 1dp, у второго - 3dp. Получили красивую полоску.

У прямоугольников можно скруглить углы при помощи тега corners

rectangle_rounded_all.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <solid android:color="#B902B0"/> <corners android:radius="10.0dip" /> </shape> </item></selector>

Можно закруглить углы по отдельности:

rectangle_rounded_some.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <solid android:color="#EC6118"/> <corners android:bottomRightRadius="0.1dp" android:bottomLeftRadius="7dip" android:topLeftRadius="7dip" android:topRightRadius="0.1dp"/> </shape> </item></selector>

Oval (Эллипс)

shape_oval.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="oval"> <solid android:color="#FCD366"/> </shape> </item></selector>

Другой вариант с пунктиром:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <gradient android:centerColor="#FFFF00" android:centerX="0.5" android:centerY="0.5" android:endColor="#00FF00" android:gradientRadius="100" android:startColor="#FF0000" android:type="radial" /> <stroke android:dashGap="6dip" android:dashWidth="8dip" android:width="5dip" android:color="#000000" /> </shape>

Ring (Кольцо)

shape_ring.xml - Для кольца имеются дополнительные атрибуты:

InnerRadius

Внутренний радиус

InnerRadiusRatio

Отношение между внешним и внутренним радиусами. По умолчанию равно 3

Thickness

Толщина кольца (т.е. разница между внешним и внутренним радиусами)

ThicknessRatio

Отношение ширины кольца к его толщине. По умолчанию равно 9

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="ring" android:innerRadiusRatio="3" android:thicknessRatio="5.333"> <solid android:color="#7DBE15"/> </shape> </item></selector>

Line (Горизонтальная линия)

shape_line.xml - Линия может быть только горизонтальной



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 453; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.112.1 (0.01 с.)