Intereting Posts
Как добавить изображение (слева) и текст на кнопке Изображение из галереи в Android 6 (Marshmallow) Отслеживать использование каждого приложения на Android на устройствах до Lollipop Есть ли стандарт документации для пользовательских атрибутов стиля XML в Android? Я хочу установить максимальную высоту в фрагменте диалога SetOnClickListener и setOnLongClickListener вызов по одной проблеме кнопки Есть ли какой-либо API Google Now, который позволяет интегрировать наши собственные приложения в настоящее время? Можно ли измерить, насколько далеко телефон перемещается по вертикали Каждый проект говорит об ошибке после обновления Android ADT Модульное тестирование создания базы данных SQLite с использованием Spock и Robospock Android Mediastore: как эффективно извлекать все песни определенного жанра? Метод Gradle DSL не найден: 'compile ()' Фрагменты, отображаемые друг над другом Добавление цвета фона и радиуса рамки к макету Android Book for development

Android Paint.setTypeface не работает для курсива

Paint.setTypeface не работает для курсива или я делаю что-то не так. Я могу создать нормальный, полужирный, моноширинный и засекреченный текст, но я не могу создать курсив. Он всегда выглядит нормально (или в случае полужирным шрифтом, он выглядит полужирным шрифтом).

//This will appear monospace paint.setTypeface(Typeface.MONOSPACE); canvas.drawText("foo", 10, 10, paint); //This will appear serif paint.setTypeface(Typeface.SERIF); canvas.drawText("foo", 10, 10, paint); //This will appear bold paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); canvas.drawText("foo", 10, 10, paint); //This will NOT appear italic <=== PROBLEM paint.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC)); canvas.drawText("foo", 10, 10, paint); // This isn't working either <=== PROBLEM paint.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.ITALIC)); 

Итак, теперь вопрос: существует ли известное обходное решение для этого? Моя простая цель – нарисовать некоторые слова с курсивом

Solutions Collecting From Web of "Android Paint.setTypeface не работает для курсива"

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

 paint.setTextSkewX(-0.25f); 

У меня такая же проблема. Похоже, что не все шрифты для Android поддерживают стиль ITALIC. Попытайтесь следовать, я работал для меня:

 paint.setTypeface(Typeface.create(Typeface.SERIF,Typeface.ITALIC)); 

Прекрасно работает с SERIF. DEFAULT, MONOSPACE, SANS_SERIF использует этот стиль.

PS Я говорю об API 10.

Чтобы получить курсивный режим для устройств, которые не поддерживают его для шрифта по умолчанию, мы должны использовать метод setTextSkewX. Однако, прежде чем применять его, мы должны быть уверены, что курсивный режим не поддерживается. Мы достигаем этого, создавая временный объект TextView и измеряя его ширину в обоих режимах (NORMAL и ITALIC). Если их ширина одинакова, то это означает, что режим ITALIC НЕ поддерживается.

Пожалуйста, взгляните на решение, представленное в другом вопросе: устройства Samsung, поддерживающие setTypeface (Typeface.Italic)?