Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 52, средняя оценка - 4.81
Last_Night
19 / 19 / 0
Регистрация: 02.10.2012
Сообщений: 124
#1

Сменить шрифт в TextView - Программирование Android

24.09.2013, 01:27. Просмотров 7388. Ответов 24
Метки нет (Все метки)

Как сменить шрифт в TextView?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 01:27     Сменить шрифт в TextView
Посмотрите здесь:

Сторонний шрифт для TextView - Программирование Android
Возникла такая проблема, ставлю собственный шрифт для TextView используя метод setTypeface, все нормально работает только для тех TextView,...

TextView question - Программирование Android
Всем привет и хорошего дня. А можно ли в коде задавать TextView и присваивать текст из ресурсов strings? Или, если уж в xml всё это...

Html и TextView - Программирование Android
final ArrayList<String> arrLV = new ArrayList<String>(); final ArrayAdapter<String> aa; int resId =...

TextView and Fragment - Программирование Android
Доброго времени суток . Очень странная проблема, в классе extends Fragment есть кнопка и текст вью , при нажатии на кнопку вызываю ...

Обратиться к TextView - Программирование Android
Можно из просто класса public class MyClass { } из статического метода получить доступ к TextView? пробую так, но не...

Вывод в textView из БД - Программирование Android
У меня есть БД public void onCreate(SQLiteDatabase db) { // создаем таблицу с полями db.execSQL("create table mystudent ("...

Клик по textview - Программирование Android
Есть listView внутри него textview В который вставляется ссылка '<a href="http://yandex.ru'>ыыыы</a>', таким вот образом ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 01:42     Сменить шрифт в TextView #2
Java
1
2
3
TextView tv = (TextView) findViewById(R.id.textView1);
Typeface face = Typeface.createFromAsset(getAssets(), "yourfont.ttf");
tv.setTypeface(face);
yourfont.ttf положить в папку assets.
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
07.05.2014, 15:53     Сменить шрифт в TextView #3
А куда этот код прописать?!
rus_artur4ik
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 31
08.05.2014, 13:53     Сменить шрифт в TextView #4
Цитата Сообщение от kolodiazniy Посмотреть сообщение
А куда этот код прописать?!
В MainActivity.java, в методе onCreate.
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
09.05.2014, 09:48     Сменить шрифт в TextView #5
Я так и сделал.
Но приложение пишет "Unfortunately, my_app has stopped" после чего закрывается (
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
10.05.2014, 04:34     Сменить шрифт в TextView #6
Netscape У меня заработало - сменил шрифт на кнопке... но можно ли подменить шрифт для всей программы или для целого активити?
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
10.05.2014, 10:43     Сменить шрифт в TextView #7
А какой шрифт использовали?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
10.05.2014, 11:40     Сменить шрифт в TextView #8
Цитата Сообщение от kolodiazniy Посмотреть сообщение
А какой шрифт использовали?
дал глобальный поиск по всем опенсорс коллекциям у меня на компе... нашел AeroviasBrasilNF.ttf как сильно не стандартный("кривые буквы" - легко заметить разницу). По идее можно вроде любой!

Добавлено через 3 минуты
Вроде здесь есть: http://www.1001fonts.com/aerovias-brasil-nf-font.html
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
10.05.2014, 16:16     Сменить шрифт в TextView #9
Да, дело не в шрифте - это я уже выяснил.
Logcat ругается на третью строку кода - tv.setTypeface(face);
Если её закоментарить - ошибка исчезает, но и шрифт не изменяется.

Знающие люди, подскажите в чём дело!!!
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
10.05.2014, 16:55     Сменить шрифт в TextView #10
Цитата Сообщение от kolodiazniy Посмотреть сообщение
подскажите в чём дело
У меня это работает! А значит ошибка не здесь!
Возможно Вы не правильный реквизит указали здесь:
TextView tv = (TextView) findViewById(R.id.textView1);
Вместо textView1? Возможно его не получается найти...
У меня работало даже когда забыл определить Typeface face! Просто не меняло шрифт...
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
10.05.2014, 17:22     Сменить шрифт в TextView #11
Не получалось бы найти - Logcat ругался бы на 1-ю строчку. А он ругается на 3-ю.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
10.05.2014, 21:32     Сменить шрифт в TextView #12
Tester64, красивое решение я подсмотрел здесь:
https://github.com/johnkil/Android-RobotoTextView
и теперь не парюсь насчет установки шрифта в коде.
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
10.05.2014, 22:21     Сменить шрифт в TextView #13
Цитата Сообщение от Tester64 Посмотреть сообщение
У меня это работает! А значит ошибка не здесь!
У меня работало даже когда забыл определить Typeface face! Просто не меняло шрифт...
А не затруднит ли вам выслать мне ваш исходник?
Простейший, но чтобы в вашем Eclipse проверен был и работал.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.05.2014, 03:38     Сменить шрифт в TextView #14
Цитата Сообщение от kolodiazniy Посмотреть сообщение
выслать мне ваш исходник
Я работаю в Студии. На код это не влияет, но в еклипс импортировать сложнее... Да и проект уже больше мегабайта исходников...
Лучше Вы вышлите Ваш исходник - смогу поискать ошибки через блокнот

Добавлено через 4 минуты
Цитата Сообщение от kolodiazniy Посмотреть сообщение
Не получалось бы найти - Logcat ругался бы на 1-ю строчку. А он ругается на 3-ю.
Не обязательно! Если не нашел, то
TextView tv = (TextView) findViewById(R.id.textView1);
tv == null. Что можно обработать как исключение... а использовать уже нельзя

Добавлено через 30 минут
Цитата Сообщение от Netscape Посмотреть сообщение
красивое решение я подсмотрел здесь
У мене не запустился! грандл со своими странностями - я еще не разобрался... попробую еще раз позднее когда будет время на изучение грандле...
можете намекнуть что искать? Кода слишком много что-бы в блокноте изучать, а APK так и не получил. Даже встроенный gradlew.bat не помог...
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
11.05.2014, 12:44     Сменить шрифт в TextView #15
Цитата Сообщение от Tester64 Посмотреть сообщение
Я работаю в Студии
А я работаю дома )))

Цитата Сообщение от Tester64 Посмотреть сообщение
Лучше Вы вышлите Ваш исходник
Ничего, что можно было бы назвать громким словом "исходник" у меня нет.
Мой код состоит всего из 3-х строк, вписанных в цикл "onCreate" - и те не работают!
Вот весь цикл:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        TextView tv = (TextView) findViewById(R.id.textView1);
        Typeface face = Typeface.createFromAsset(getAssets(), "fonts/my_font.ttf");
        tv.setTypeface(face);  
        
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }}
Если же изучить Logcat, можно найти запись:
Caused by: java.lang.NullPointerException at com.example.my_app.MainActivity.onCreate (MainActivity.java: 23)
А 23-я строчка - это tv.setTypeface(face);
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.05.2014, 15:03     Сменить шрифт в TextView #16
Цитата Сообщение от kolodiazniy Посмотреть сообщение
Я работаю в Студии
А я работаю дома )))
Я тоже дома))
Речь шла о AndroidStudio! Это принципиально отличается от Эклипса. Другой метод хранения папок, другой механизм компиляции. Обычно сильно не совместимы друг с другом папки исходников. Даже Java файлы иногда по разному ругаются - на разные ошибки... Я знаю как папку из элипса импортировать в студию, но не знаю насколько проблематично студию в эклипс...

Цитата Сообщение от kolodiazniy Посмотреть сообщение
Ничего, что можно было бы назвать громким словом "исходник" у меня нет
Все равно папка с исходниками читабельнее одного кусочка в текстовике...
1) Как я уже говорил... убедитесь что textView1 правильно нашли...
Попробуйте сразу после TextView tv = (TextView) findViewById(R.id.textView1); вставить
tv.setText("Hello!");
если не получится - фонт не виноват
2) уберите слово fonts/! извращаться потом будете. И не уверен что подобное вообще заработает...
3) убедитесь что my_font.ttf лежит в корневой папке assets и является шрифом.
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
11.05.2014, 16:27     Сменить шрифт в TextView #17
Цитата Сообщение от Tester64 Посмотреть сообщение
... убедитесь что my_font.ttf лежит в корневой папке assets и является шрифом.
Убедися. Со шрифтом всё нормально.

Цитата Сообщение от Tester64 Посмотреть сообщение
Попробуйте сразу после TextView tv = (TextView) findViewById(R.id.textView1); вставить
tv.setText("Hello!");
если не получится - фонт не виноват
Не получилось (((
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.05.2014, 16:49     Сменить шрифт в TextView #18
Цитата Сообщение от kolodiazniy Посмотреть сообщение
Не получилось (((
Значит у Вас нет TextView-элемента textView1 на этом активити (в XML файле).
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
11.05.2014, 16:51     Сменить шрифт в TextView #19
Tester64, та не особо там много кода:
отвечает за установку шрифтов:
https://github.com/johnkil/Android-R...ceManager.java
кастомный TextView:
https://github.com/johnkil/Android-R...oTextView.java
кастомные атрибуты:
https://github.com/johnkil/Android-R...lues/attrs.xml
ну и собственно пример:
https://github.com/johnkil/Android-R...ivity_main.xml

вот так объявляется TextView:
XML
1
2
3
4
5
6
<com.devspark.robototextview.widget.RobotoTextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    app:typeface="roboto_thin_italic"
                    android:textSize="22sp"
                    android:text="Thin Italic"/>
собственно установка шрифта:
app:typeface="roboto_thin_italic"
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 17:36     Сменить шрифт в TextView
Еще ссылки по теме:

Вылетает TextView - Программирование Android
Вылетает приложение при переходе на Activity с текстом, превышающим размер экрана в стандартном масштабе. Текст храню в string.xml,...

TextColor textView - Программирование Android
Здравствуйте, возникла внезапно, то есть раньше всё в порядке было, такая проблема: цвет текста во всех textview изменился на дефаултный,...

Вывод в TextView - Программирование Android
Здраствуйте, я новичок и у меня возник первый вопрос: есть TextView tv1 и есть &quot;InetAddress Address = InetAddress.getByName(&quot;www.ya.ru&quot;);&quot;...

TextView и картинкака - Программирование Android
Доброго времени. есть вот такой код: &lt;LinearLayout android:layout_width=&quot;match_parent&quot; ...

Вывод в TextView - Программирование Android
Здраствуйте, я новичок и у меня возник первый вопрос: есть TextView tv1 и есть &quot;InetAddress Address = InetAddress.getByName(&quot;www.ya.ru&quot;);&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kolodiazniy
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 18
11.05.2014, 17:36     Сменить шрифт в TextView #20
В том-то и дело, что есть (

Решил упростить задачу: прописал в onCreate всего 2 ))) строчки.
Java
1
2
TextView myTextView = (TextView) findViewById(R.id.myText);
myTextView.setText("New text in TextView");
При этом Fragment_myapp.xml выглядит как надо:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<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.example.my.My$PlaceholderFragment" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
        android:id="@+id/myText"/>
</RelativeLayout>
И что? А всё то же - ругается на вторую строчку кода:
Caused by: java.lang.NullPointerException com.example.my.My.onCreate (My.java:21)

Стоит её закоментарить - и всё ОК.
Yandex
Объявления
11.05.2014, 17:36     Сменить шрифт в TextView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru