Новые книги

Сегодня, чтобы достучаться до ваших клиентов, недостаточно иметь хороший продукт, нужна платформа для его продвижения. Эта книга – пошаговое руководство по ее созданию. Никогда еще сделать это не было проще, дешевле и реальнее, чем сейчас. Майкл Хайятт, бывший СЕО и нынешний председатель правления одного из крупнейших издательств в США Thomas Nelson, приглашает читателя в новый мир социальных медиа и рассказывает, как достичь успеха с их помощью. Автор учит читателей не только расширять свою представленность в сети, но и получать благодаря этому стабильный доход.
Почему одни компании процветают, а другие теряют бизнес? Важнейшим инструментом продвижения сегодня стал Интернет. Многое зависит от методов, с помощью которых вы сами, web-студии или рекламные и PR-агентства продвигают ваш бизнес. Методы эти зачастую неэтичны, незаконны и попросту неправильны. Например, продвижение интернет-магазина в корне отличается от продвижения сетевого издания.

В итоге, обладатели интернет-ресурсов ежедневно недополучают огромные прибыли.

Данная книга – первая в нашей стране попытка рассказать обо всех действенных методах рекламы и PR в Интернет. Автор, главный редактор «Российского PR-портала», в течение последних 9 лет успешно использовал эти способы в своей работе. Кроме того книга поможет вам самостоятельно сформулировать – чего вы хотите от собственного сайта.

Издание будет полезно и интернет-специалистам, и новичкам.

Определение атрибутов контекста отображения



Определение атрибутов контекста отображения

Оглавление

Рисование в окне
Контекст отображения
Установка атрибутов
Определение атрибутов
Рисование фигур
Аплет Draw
Исходные тексты
Проект аплета

Ряд методов класса Graphics позволяет определить различные атрибуты контекста отображения, например, цвет, выбранный в контекст отображения или метрики текущего шрифта, которым выполняется рисование текста.

Рассмотрим методы, позволяющие определить атрибуты контекста отображения.

Определение границ области ограничения вывода

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

Метод getClipRect позволяет вам определить координаты текущей области ограничения, заданной в контексте отображения:

public abstract Rectangle getClipRect();

Метод возвращает ссылку на объект класса Rectangle, который, в частности, имеет поля класса с именами x, y, height и width. В этих полях находится, соответственно, координаты верхнего левого угла, высота и ширина прямоугольной области.

Определение цвета, выбранного в контекст отображения

Метод getColor возвращает ссылку на объект класса Color, представляющий текущий цвет, выбранный в контекст отображения:

public abstract Color getColor();

Определение шрифта, выбранного в контекст отображения

С помощью метода getFont, возвращающего ссылку на объект класса Font, вы можете определить текущий шрифт, выбранный в контекст отображения:

public abstract Font getFont();

Определение метрик текущего шрифта

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

Метрики текущего шрифта в контексте отображения вы можете узнать при помощи метода getFontMetrics, прототип которого приведен ниже:

public FontMetrics getFontMetrics();	

Метод getFontMetrics возвращает ссылку на объект класса FontMetrics. Ниже мы привели список наиболее важных методов этого класса, предназначенных для получения отдельных параметров шрифта:

Метод Описание
public Font getFont(); Определение шрифта, который описывается данной метрикой
public int bytesWidth(byte data[], int off, int len); Метод возвращает ширину строки символов, расположенных в массиве байт data. Параметры off и len задают, соответственно, смещение начала строки в массиве и ее длину
public int charsWidth(char data[], int off, int len); Метод возвращает ширину строки символов, расположенных в массиве символов data. Параметры off и len задают, соответственно, смещение начала строки в массиве и ее длину
public int charWidth(char ch); Метод возвращает ширину заданного символа
public int charWidth(int ch); Метод возвращает ширину заданной строки символов
public int getAscent(); Определение расстояния от базовой линии до верхней выступающей части символов
public int getDescent(); Определение расстояния от базовой линии до нижней выступающей части символов
public int getLeading(); Расстояние между строками текста
public int getHeight(); Определение полной высоты символов, выполняется по формуле:

getLeading() + getAscent() + getDescent()

public int getMaxAdvance(); Максимальная ширина символов в шрифте
public int getMaxAscent(); Максимальное расстояние от базовой линии до верхней выступающей части символов для символов данного шрифта
public int getMaxDescent(); Максимальное расстояние от базовой линии до нижней выступающей части символов для символов данного шрифта
public int[] getWidths(); Массив, в котором хранятся значения ширины первых 256 символов в шрифте
public int stringWidth(String str); Ширина строки, передаваемой методу в качестве параметра
public String toString(); Текстовая строка, представляющая данную метрику шрифта

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

Для определения полной высоты строки символов вы можете воспользоваться методом getHeight.

Определение метрик заданного шрифта

Метод getFontMetrics с параметром типа Font позволяет определить метрики любого шрифта, передаваемого ему в качестве параметра:

public abstract FontMetrics 
  getFontMetrics(Font f);

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