Поделиться через


Drawable Класс

Определение

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

[Android.Runtime.Register("android/graphics/drawable/Drawable", DoNotGenerateAcw=true)]
public abstract class Drawable : Java.Lang.Object
[<Android.Runtime.Register("android/graphics/drawable/Drawable", DoNotGenerateAcw=true)>]
type Drawable = class
    inherit Object
Наследование
Drawable
Производный
Атрибуты

Комментарии

Рисование — это общая абстракция для "чего-то, что может быть нарисовано". Чаще всего вы будете иметь дело с Drawable в качестве типа ресурса, полученного для рисования вещей на экране; Класс Drawable предоставляет универсальный API для работы с базовым визуальным ресурсом, который может принимать различные формы. android.view.ViewВ отличие от объекта, в приложении Drawable нет средств для получения событий или взаимодействия с пользователем.

Помимо простого рисования, Drawable предоставляет ряд универсальных механизмов для взаимодействия с нарисованным клиентом:

<ul><li> Метод #setBounds <var>должен< или var> вызываться, чтобы узнать, где он рисуется, и насколько большой он должен быть. Все рисуемые элементы должны соблюдать запрошенный размер, часто просто масштабируя их изображения. Клиент может найти предпочтительный размер для некоторых рисуемых элементов с #getIntrinsicHeight помощью методов и #getIntrinsicWidth методов.

<#getPadding li> Метод может возвращать некоторые сведения о том, как кадрировать содержимое, размещенное внутри них. Например, для мини-приложения кнопки необходимо вернуть отрисовку, которая правильно помещает метку внутри себя.

<> #setState Метод li позволяет клиенту сообщить ему о том, в каком состоянии он должен быть нарисован, например "фокус", "выбран" и т. д. Некоторые рисуемые могут изменять образы на основе выбранного состояния.

<Li> Метод #setLevel позволяет клиенту предоставлять один непрерывный контроллер, который может изменить рисуемый объект, отображается, например уровень заряда батареи или уровень хода выполнения. Некоторые рисуемые могут изменять образы на основе текущего уровня.

<li> Рисование может выполнять анимацию, вызывая клиент Callback через интерфейс. Все клиенты должны поддерживать этот интерфейс (через #setCallback), чтобы анимации работали. Простой способ сделать это через системные средства, такие как android.view.View#setBackground(Drawable) и android.widget.ImageView. </ul>

Хотя обычно не видно приложению, рисование может принимать различные формы:

<ul><li><b>Bitmap</b>: самый простой рисуемый, PNG или JPEG-изображение. <li><b>Nine Patch</b>: расширение в формате PNG позволяет указать сведения о том, как растянуть его и поместить внутри него. <li><b Vector</b>>: рисование, определенное в XML-файле в виде набора точек, линий и кривых, а также связанных с ней сведений о цвете. Этот тип рисования можно масштабировать без потери качества отображения. <li><b Shape</b>>: содержит простые команды рисования вместо необработанного растрового изображения, что позволяет лучше изменять размер в некоторых случаях. <li><b Layers</b>>: составной рисуемый объект, который рисует несколько базовых рисуемых элементов на вершине друг друга. <li><b State</b>>: составной рисуемый объект, который выбирает один из наборов рисуемых объектов на основе его состояния. <li><b Levels</b>>: составной рисуемый объект, который выбирает один из наборов рисуемых объектов на основе его уровня. <li><b Scale</b>>: составной рисуемый с одним дочерним рисованием, общий размер которого изменяется на основе текущего уровня. </ul>

"Custom"><h3 Custom Drawables</h3>>

Все версии Android позволяют расширить и использовать класс Drawable во время выполнения вместо классов, предоставляемых платформой. android.os.Build.VERSION_CODES#N API 24Начиная с , пользовательские классы рисования также могут использоваться в XML.

<Strong>Note:</strong> Custom Drawable classes are onlyable from your application package. Другие приложения не смогут загружать их.

Как минимум, пользовательские классы, доступные для рисования, должны реализовывать абстрактные методы в Drawable и переопределять метод для рисования содержимого Drawable#draw(Canvas) .

Пользовательские классы рисования могут использоваться в XML несколькими способами: <ul><li> с помощью полного имени класса в качестве имени XML-элемента. Для этого метода настраиваемый класс, доступный для рисования, должен быть общедоступным классом верхнего уровня.

&lt;com.myapp.MyCustomDrawable xmlns:android="http://schemas.android.com/apk/res/android"
                android:color="#ffff0000" /&gt;

</li li>>< С помощью <em>drawable</em> в качестве имени XML-элемента и указания полного имени класса из атрибута <em>/<em.> Этот метод может использоваться как для общедоступных классов верхнего уровня, так и для общедоступных статических внутренних классов.

&lt;drawable xmlns:android="http://schemas.android.com/apk/res/android"
                class="com.myapp.MyTopLevelClass$InnerCustomDrawable"
                android:color="#ffff0000" /&gt;

</li></ul>

<div class="special reference"><h3 Developer Guides</h3>>

Дополнительные сведения об использовании рисования см. в руководстве разработчика Canvas и Drawables . Сведения и примеры создания рисуемых ресурсов (XML-файлы или растровые файлы, которые можно загрузить в коде), см. в документе "Ресурсы, доступные для рисования".

</div>

Документация по Java для android.graphics.drawable.Drawable.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

Drawable()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

Drawable(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Alpha

Возвращает текущее альфа-значение для рисуемого объекта.

AutoMirrored

Указывает, будет ли этот рисование автоматически зеркально отображаться, если его направление макета — RTL справа налево. -или- Задайте, будет ли этот рисуемый параметр автоматически зеркально отображаться, если его направление макета — RTL (справа налево).

Bounds

Возвращает границы рисуемого прямоугольника. -или- Укажите ограничивающий прямоугольник для рисования.

Callback

Возвращает текущую Callback реализацию, подключенную к этому объекту Drawable.

ChangingConfigurations

Возвращает маску параметров конфигурации, для которых это может измениться, требуя повторного создания. -или- Задайте маску параметров конфигурации, для которых это может измениться, требуя повторного создания.

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
ColorFilter

Возвращает текущий цветовый фильтр или null не задан.

Current

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

DirtyBounds

Верните грязные границы рисуемого прямоугольника.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
HasFocusStateSpecified

Указывает, имеет ли этот рисуемый по крайней мере один спецификации состояния явным android.R.attr#state_focusedобразом.

IntrinsicHeight

Возвращает встроенную высоту рисуемого элемента.

IntrinsicWidth

Возвращает встроенную ширину рисования.

IsFilterBitmap

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

IsProjected

Указывает, является ли эта проекция нарисоваемым запросом.

IsStateful

Указывает, изменится ли этот внешний вид на основе состояния.

IsVisible

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

JniIdentityHashCode

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
JniPeerMembers

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

LayoutDirection

Возвращает разрешенное направление макета для этого объекта Drawable.

Level

Получение текущего уровня.

MinimumHeight

Возвращает минимальную высоту, предлагаемую этим рисуемым.

MinimumWidth

Возвращает минимальную ширину, предлагаемую этим рисуемым.

Opacity

Возвращает прозрачность или прозрачность этого объекта Drawable.

OpticalInsets

Возвращает в наборы наборов макетов, предлагаемых этим рисуемым для использования с операциями выравнивания во время макета.

PeerReference

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

TransparentRegion

Возвращает регион, представляющий часть рисования, которая полностью прозрачна.

Методы

ApplyTheme(Resources+Theme)

Применяет указанную тему к этой рисуемой и ее дочерним элементам.

CanApplyTheme()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

ClearColorFilter()

Удаляет фильтр цветов для этого рисуемого объекта.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
CopyBounds()

Верните копию границ рисования в новом прямоугольнике.

CopyBounds(Rect)

Возвращает копию границ рисования в указанном прямоугольнике (выделено вызывающим объектом).

CreateFromPath(String)

Создайте рисование из имени пути к файлу.

CreateFromPathAsync(String)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

CreateFromResourceStream(Resources, TypedValue, Stream, String, BitmapFactory+Options)

Создайте рисование из входного потока, используя заданные ресурсы и значение для определения сведений о плотности.

CreateFromResourceStream(Resources, TypedValue, Stream, String)

Создайте рисование из входного потока, используя заданные ресурсы и значение для определения сведений о плотности.

CreateFromResourceStreamAsync(Resources, TypedValue, Stream, String, BitmapFactory+Options)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

CreateFromResourceStreamAsync(Resources, TypedValue, Stream, String)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

CreateFromStream(Stream, String)

Создание рисования из входного потока

CreateFromStreamAsync(Stream, String)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

CreateFromXml(Resources, XmlReader, Resources+Theme)

Создайте рисование из XML-документа.

CreateFromXml(Resources, XmlReader)

Создайте рисование из XML-документа.

CreateFromXmlAsync(Resources, XmlReader, Resources+Theme)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

CreateFromXmlAsync(Resources, XmlReader)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

CreateFromXmlInner(Resources, XmlReader, IAttributeSet, Resources+Theme)

Создайте из XML-документа.

CreateFromXmlInner(Resources, XmlReader, IAttributeSet)

Создайте из XML-документа.

Dispose()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
Dispose(Boolean)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
Draw(Canvas)

Рисуйте границы (set via setBounds) с учетом необязательных эффектов, таких как альфа(set via setAlpha) и фильтр цветов (set via setColorFilter).

Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetConstantState()

ConstantState Возвращает экземпляр, содержащий общее состояние этого объекта Drawable.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetHotspotBounds(Rect)

Заполняется outRect границами хот-спота.

GetOutline(Outline)

Вызывается для заполнения области рисования, определяющей область рисования.

GetPadding(Rect)

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

GetState()

Описывает текущее состояние, как объединение примитивных состояний, таких как android.R.attr#state_focused, android.R.attr#state_selectedи т. д.

Inflate(Resources, XmlReader, IAttributeSet, Resources+Theme)

Раздуйте этот рисуемый ресурс ИЗ XML-ресурса.

Inflate(Resources, XmlReader, IAttributeSet)

Раздуйте этот рисуемый ресурс ИЗ XML-ресурса.

InflateAsync(Resources, XmlReader, IAttributeSet, Resources+Theme)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

InflateAsync(Resources, XmlReader, IAttributeSet)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

InvalidateSelf()

Используйте текущую Callback реализацию для перезарисовки с возможностью рисования.

JavaFinalize()

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
JumpToCurrentState()

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

Mutate()

Сделайте этот рисуемый изменяемым.

Notify()

Пробуждение одного потока, ожидающего монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
OnBoundsChange(Rect)

Переопределите это в подклассе, чтобы изменить внешний вид, если вы зависите от границ.

OnLayoutDirectionChanged(Int32)

Вызывается, когда разрешенное направление макета для рисования изменяется.

OnLevelChange(Int32)

Переопределите это в подклассе, чтобы изменить внешний вид, если вы зависите от уровня.

OnStateChange(Int32[])

Переопределите это в подклассе, чтобы изменить внешний вид, если вы распознаете указанное состояние.

ResolveOpacity(Int32, Int32)

Возвращает соответствующее значение непрозрачности для двух исходных опасностей.

ScheduleSelf(Action, Int64)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

ScheduleSelf(IRunnable, Int64)

Используйте текущую Callback реализацию, чтобы запланировать это рисование.

SetAlpha(Int32)

Укажите альфа-значение для рисуемого объекта.

SetBounds(Int32, Int32, Int32, Int32)

Укажите ограничивающий прямоугольник для рисования.

SetCallback(Drawable+ICallback)

Привязывает объект к этому объекту Callback Drawable.

SetColorFilter(Color, PorterDuff+Mode)

Укажите цвет и режим Porter-Duff, чтобы быть фильтром цветов для этого рисуемого объекта.

SetColorFilter(ColorFilter)

Укажите необязательный цветной фильтр для рисования.

SetDither(Boolean)

Задайте для значения true, чтобы цветолюбивого дитератора отображалось на устройстве с менее чем 8 битами на каждый компонент цвета.

SetFilterBitmap(Boolean)

Задайте значение true, чтобы фильтруемый фильтр был применен к растровым изображениям с двулинейной выборкой при масштабировании или повороте.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetHotspot(Single, Single)

Указывает расположение хот-точки в рисуемом объекте.

SetHotspotBounds(Int32, Int32, Int32, Int32)

Задает границы, к которым ограничена точка доступа, если они должны отличаться от границ, доступных для рисования.

SetLayoutDirection(LayoutDirection)

Задайте направление макета для этого рисуемого объекта.

SetLevel(Int32)

Укажите уровень для рисования.

SetState(Int32[])

Укажите набор состояний для рисования.

SetTint(Int32)

Задает цвет оттенка для этого рисуемого объекта.

SetTintBlendMode(BlendMode)

Задает режим смешивания оттенков для этого рисуемого объекта.

SetTintList(ColorStateList)

Задает цвет отрисовки для этого рисования в виде списка состояний цвета.

SetTintMode(PorterDuff+Mode)

Задает режим смешивания оттенков для этого рисуемого объекта.

SetVisible(Boolean, Boolean)

Задайте, отображается ли этот рисуемый файл.

ToArray<T>()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
UnscheduleSelf(Action)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

UnscheduleSelf(IRunnable)

Используйте текущую Callback реализацию для незапланированного рисования.

Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

GetJniTypeName(IJavaPeerable)

Рисование — это общая абстракция для "чего-то, что можно нарисовать.

Применяется к