Есть вопрос?
Зайди на форум

Поиск:

Denix: русификация Ubuntu и кодеки :: RSS:: Скачать книги Колисниченко в PDF

Англо-русский словарь компьютерных терминов (Д. Колисниченко)

A  B  C  D  E  F  G  H  I  K  L  M  N  O  P  Q  R  S  T  V  W  X  Y  Z 

укрпочта отслеживание посылок перевод денег график отключения света в Кировограде график отключения счета в Киеве график отключения света в Одессе (zip)

Класс Drawable

© Денис Колисниченко

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

В этой статье мы поговорим о создании статической графики путем рисования в объекте View из разметки или же рисования непосредственно на канве. Анимация будет рассмотрена в следующих статьях.

Для рисования на формах и изображениях используется графическая библиотека android.graphics.drawable. Класс Drawable определяет различные виды графики, например BitmapDrawable, ShapeDrawable, LayerDrawable и др.

Существуют два способа определения и инициализации объекта Drawable. Первый заключается в использовании объектов из каталога res/drawable, а второй — в использовании XML-файла со свойствами объекта Drawable.

В Android-приложениях вы можете использовать изображения следующих фор-
матов:

Примечание

Конечно, для каждого формата есть свое применение. Формат PNG отлично подходит для изображений кнопок и других элементов графического интерфейса. Формат JPEG вы будете использовать для работы с фотографиями — от него никуда не денешься. Формат BMP — это изобретение Microsoft, вот пусть сами его и используют. Только
у Microsoft есть столько дискового пространства, чтобы хранить изображения в формате BMP. Формат GIF поддерживает анимацию — это единственное его преимущество, но позже вы узнаете, что анимацию можно создать средствами Android. Поэтому вообще не вижу необходимости в этом формате.

Ресурсы изображений помещаются в каталог res/drawable. Во время компиляции программы ресурсы из этого каталога оптимизируются программой aapt. Если вам нужно использовать растровые изображения без оптимизации, поместите их в каталог res/raw — при компиляции файлы из этого каталога не будут оптимизированы утилитой aapt.

Рассмотрим подробнее процесс добавления ресурса в проект. Предположим, что нам нужно добавить в проект два файла — p1.jpg и p2.jpg. Подготовьте три варианта каждого файла — с высоким разрешением, со средним разрешением и с низким разрешением. Значение разрешения зависит от выбранной платформы и от самого мобильного устройства

Файлы с высоким разрешением нужно поместить в каталог res/drawable-hdpi, файлы с низким разрешением — в каталог res/drawable-ldpi, со средним — в каталог res/drawable-mdpi. После этого вернитесь в окно Eclipse, нажмите F5  и в области Package Explorer вы увидите добавленные файлы (рис. 1).

Теперь перейдите на вкладку Images & Media палитры компонентов и добавьте элемент ImageView. При его добавлении с помощью графического редактора разметки появится окно, в котором нужно выбрать изображение для

Рис. 7.1. Добавленные графические файлы

Рис. 7.2. Выбор ресурса

Рис. 7.3. Выбранное изображение

отображения в ImageView (рис. 2). Выбранное изображение сразу будет отображено в редакторе разметки (рис. 3).

Далее выбранное изображение появится в редакторе разметки (рис. 7.3), а в файл main.xml будет добавлен код, приведенный в листинге 1. Из листинга 1 я удалил код текстовой надписи, которая добавляется в проект по умолчанию.

Листинг 1. Пример описания элемента ImageView

<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:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="com.sample.glava7.MainActivity" >

 

    <ImageView

        android:id="@+id/imageView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_below="@+id/textView1"

        android:layout_marginTop="159dp"

        android:src="@drawable/p2" />

 

</RelativeLayout>

 

Обратите внимание (© Денис Колисниченко), что в новом ADT-плагине появилось новое предупреждение. В редакторе кода оно выглядит как желтый треугольник с восклицательным знаком напротив кода ImageView. Если подвести к нему указатель мыши, то вы увидите само предупреждение:

Missing contentDescription attribute on image

Данное предупреждение не приведет к какой-либо ошибке при сборке проекта и можно проигнорировать. Но если и вам не нравятся какие-либо предупреждения и недостатки кода, тогда сначала нужно в файл res/values/strings.xml добавить новую строку desc. То есть в файл strings.xml нужно добавить строку:

<string name="desc">Описание картинки</string>

Это и будет описание картинки, как вы уже догадались. После этого нужно обязательно сохранить этот файл, нажав Ctrl + S. Затем в файл разметки необходимо добавить атрибут contentDescription для ImageView и сохранить файл разметки:

android:contentDescription="@string/desc"

После этого предупреждение больше не будет появляться. Полный код ImageView выглядит так:

<ImageView

        android:id="@+id/imageView1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

         android:contentDescription="@string/desc"

        android:layout_alignParentLeft="true"

        android:layout_below="@+id/textView1"

        android:layout_marginTop="159dp"

        android:src="@drawable/p2" />

Напрямую значение атрибута contentDescription указывать не нужно, потому что получите еще одно предупреждение. Подробнее об этом атрибуте можно прочитать здесь:

http://developer.android.com/reference/android/view/View.html#attr_android:cont‌​entDescription

Теперь продолжим исследовать область ImageView. Имя ресурса задается параметром android:src.

В коде программы объект Drawable инициализируется так:

Resources R = mContext.getResources();

Drawable exitImage = R.getDrawable(R.drawable.exit_image);

Представим, что вы создали два разных объекта Drawable для одного и того же ресурса. Если вы потом измените свойство для одного из объектов Drawable, это же свойство будет автоматически изменено и для второго объекта Drawable, поскольку они используют один и тот же ресурс.

Узнать максимальную высоту и ширину ImageView можно методами:

int getMaxHeight()

int getMaxWidth()

Метод setImageURI() может использоваться для загрузки изображения с определенного URL, однако это может привести к задержкам, связанным с передачей данных по сети. Однако использование этого метода довольно ограничено и URI должен указываться в формате, понятном операционной системе Android, это не обычный URI, к которым мы привыкли при работе в Интернете. Другими словами, если вы укажете URL вроде http://server.ru/image.jpg, у вас ничего не выйдет.

Также некорректно работают метод setImageURI(). Вы думаете, что можно попробовать загрузить картинку так:

imageView.setImageURI(Uri.fromFile(file));

но у вас ничего не получается? Вы не один такой. Данная проблема описана здесь:

https://code.google.com/p/android/issues/detail?id=2733

К сожалению, она пока не решена, поэтому приходится "изощряться". Итак, что нужно сделать, чтобы загрузить изображение с URI? Нужно сначала получить объект Drawable, а потом передать его методу getDrawable():

Uri imgUri=Uri.parse("file:///data/data/MYFOLDER/myimage.png");

d = Drawable.createFromPath(imgUri.getPath());

ImgView.getDrawable(d);

Вместо локального файла можно указать удаленный URL. Можно также сначала получить Bitmap из изображения, а потом конвертировать его в Drawable. В группе разработчиков Google приводится решение для этого в виде следующей удобной функции, которая возвращает Bitmap изображения, заданного строкой url:

private Bitmap getImageBitmap(String url) {

            Bitmap bm = null;

            try {

                URL aURL = new URL(url);

                URLConnection conn = aURL.openConnection();

                conn.connect();

                InputStream is = conn.getInputStream();

                BufferedInputStream bis = new BufferedInputStream(is);

                bm = BitmapFactory.decodeStream(bis);

                bis.close();

                is.close();

           } catch (IOException e) {

               Log.e(TAG, "Error getting bitmap", e);

           }

           return bm;

        }

После того, как Bitmap получен - половина дела сделана. Осталось конвертировать его в Drawable. Это можно сделать так:

Bitmap b = getImageBitmap("http://server.ru/image.jpg");

Drawable d = new BitmapDrawable(getResources(),b);

Теперь у нас есть объект d, который можно передать методу getDrawable().

На главную

Мне нравится!

Сегодня: 18/01

Поздравлять сегодня некого

riostar.com.ua купить чехол для Самсунг.

Последние посты форума

Интересная картинка

Samsung Galaxy J2 Prime (SM-G532F)

дааа

Обучение PHP-программированию

Новый дизайн сайта

Возвращение на динамическую страницу сайта

С Новым Годом!

Бесплатный хостинг, SSL сертификат, не ограниченно

капец погода в ноябре у нас

Посоветуйте хостинг

флэшмобы

вот люди где живут... экстрим

авто-дилеры

Программы для Linux

книга Командная строка Linux и автоматизация рутинных задач

Совет:

Книги Д. Колисниченко:

Linux

Ubuntu Linux. Краткое руководство пользователяUbuntu Linux. Краткое руководство пользователя
Книга ориентирована на начинающего пользователя Ubuntu Linux. Книга устарела, вместо нее издана Ubuntu 10. Краткое руководство пользователя (тоже издательство БХВ)                                                                                                                                          

FreeBSD 8. Руководство администратораFreeBSD 8. Руководство администратора
Книга посвящена очередной версии популярной операционной системы с открытым исходным кодом — FreeBSD 8. Отличная книга для начинающих пользователей BSD                                                                                                                                                      

Linux. От новичка к профессионалу. 3-е изд.Linux. От новичка к профессионалу. 3-е изд.
Книга ориентирована на "среднего" и квалифицированного пользователя Linux и поможет ему самостоятельно настроить и оптимизировать эту операционную систему. Даны ответы на все вопросы, возникающие при работе с Linux: от установки и настройки этой ОС д                                                   

PHP

PHP 5/6 и MySQL 6. Разработка Web-приложенийPHP 5/6 и MySQL 6. Разработка Web-приложений
На практических примерах описана разработка Web-приложений на языке PHP версий 5 и 6. Лучшая моя книга по PHP, ищите в продаже 3-е издание! Издательство БХВ- Петербург                                                                                                                                      

PHP 5 в теории и на практикеPHP 5 в теории и на практике
Это продолжение Самоучителя PHP5 с новыми приемами программирования на PHP. Отличный выбор для начинающего PHP-программиста. Книга устарела и не поддерживается.                                                                                                                                            

PHP и MySQL. Разработка Web-приложений. 4-е издPHP и MySQL. Разработка Web-приложений. 4-е изд
Даны начала программирования на PHP: установка и настройка Apache, PHP, MySQL и кроссплатформенной сборки XAMPP, выбор редактора PHP-кода, синтаксис языка и самые полезные функции PHP 5.4. Рассмотрено создание собственного движка сайта и ряда дополни                                                   

Интернет/CMS

Интернет: от Интернет: от "чайника" к пользователю (+Видеокурс на CD)
Книга предназначена для начинающего домашнего пользователя, поможет ему самостоятельно освоить основы Интернета и начать уверенную работу.                                                                                                                                                                   

Интернет: от Интернет: от "чайника" к пользователю, 2 изд. (+Видеокурс на CD)
Книга предназначена для начинающего пользователя, поможет ему самостоятельно освоить основы Интернета и начать уверенную работу.                                                                                                                                                                            

Самоучитель Joomla!Самоучитель Joomla!
Книга ориентирована как на обычных пользователей Интернета, которым нужно в кратчайшие сроки построить свой сайт, так и на разработчиков, которые заинтересованы в создании собственных расширений и шаблонов для популярной системы управления контентом                                                   

Компьютер/Windows

Microsoft Windows 8 для пользователейMicrosoft Windows 8 для пользователей
Описаны нововведения Windows 8, особое внимание уделено использованию системы на планшете. Рассмотрена установка системы как на физический компьютер (стационарный, ноутбук, нетбук, планшет)                                                                                                                

Секреты реестра Windows XP/VistaСекреты реестра Windows XP/Vista
Описано устройство реестра операционных систем Windows XP/Vista. Реестр этих двух версий Windows похож, но не одинаков, поэтому в книге особо выделены функции, доступные только в XP и доступные только в Vista.                                                                                            

Супер Флешка. 150 лучших программ, игр и утилит, работающих прямо с флешкиСупер Флешка. 150 лучших программ, игр и утилит, работающих прямо с флешки
На сегодняшний день практически у каждого пользователя компьютера имеется флешка, которая используется для переноса файлов                                                                                                                                                                                   

Сети

Самоучитель системного администратора. 4-е изд.Самоучитель системного администратора. 4-е изд.
Изложены основные задачи системного администрирования, описаны базовые протоколы, даны рекомендации по выбору оборудования и проведению ежедневных рутинных операций. Подробно раскрыты технологии, используемые при построении информационных систем, опи                                                   

Беспроводная сеть дома и в офисеБеспроводная сеть дома и в офисе
Книга поможет начинающему администратору домашней или офисной сети в кратчайшие сроки развернуть, настроить или модернизировать беспроводную сеть. Отличный выбор для построения сети SOHO                                                                                                                   

Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.Сделай сам компьютерную сеть. Монтаж, настройка, обслуживание. Изд. 2.
Книга о настройке сети в Windows (98,NT,XP) и Linux. Является превосходным практическим руководством по созданию и обслуживанию компьютерных сетей.                                                                                                                                                          

Безопасность

Анонимность и безопасность в Интернете. От Анонимность и безопасность в Интернете. От "чайника" к пользователю
Простым и понятным языком рассказано, как скрыть свое местонахождение и IP-адрес, используя анонимные сети Tor и I2P, посетить заблокированные администратором сайты, защитить личную переписку от посторонних глаз                                                                                          

Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.Rootkits под Windows. Теория и практика программирования “шапок-невидимок“, позволяющих скрывать от системы данные, процессы, сетевые соединения.
-                                                                                                                                                                                                                                                                                                            

Автомобили

Новичок за рулем. Советы психолога, юриста, инструктора.Новичок за рулем. Советы психолога, юриста, инструктора.
Книга первая. Рекомендуется всем начинающим водителям. Текст этой книги бесплатно доступен в моем блоге http://dkws.net                                                                                                                                                                                      

Контраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMWКонтраварийное вождение. Советы - Best. Советует и рекомендует президент клуба BMW
Ценность этой книги в том, что впервые советы по контраварийному вождению вам будет давать проверенный профи...                                                                                                                                                                                              

Что делать, чтобы не надули в автосервисе. Советы и рекомендацииЧто делать, чтобы не надули в автосервисе. Советы и рекомендации
Вы недавно приобрели автомобиль или уже имеете водительский стаж, но при этом особо не вникаете в устройство автомобиля?                                                                                                                                                                                     

Переводные книги

Переводные книгиПереводные книги
Данные книги были переведены мною на русский язык (с английского и чешского). Надеюсь качество перевода вам понравится!                                                                                                                                                                                      

Android

Планшет и смартфон на базе Android для ваших родителей, 2-е изд.Планшет и смартфон на базе Android для ваших родителей, 2-е изд.
Книга знакомит читателя с мобильными устройствами на базе Android. Она написана простым и понятным языком для людей среднего и старшего возраста                                                                                                                                                             

Безопасный Android: защищаем свои деньги и данные от кражиБезопасный Android: защищаем свои деньги и данные от кражи
Рассмотрены различные способы обеспечения безопасности Android-устройств: шифрование персональной информации, хранящейся на устройстве, шифрование передаваемых данных, VPN-соединения, анонимизация трафика                                                                                             

Планшет и смартфон на базе Android для ваших родителейПланшет и смартфон на базе Android для ваших родителей
Книга рассчитана на людей среднего и старшего возраста. Она поможет освоить современный «карманный компьютер» на базе Android, в котором все новое и "не так, как в Windows". Доступным языком описывается, как включить и выключить смартфон и т.д.                                                         

Статьи

Rambler's Top100