Страницы

Поиск по вопросам

вторник, 24 декабря 2019 г.

Как отобразить символ рубля на версии Android > 4?

#android


На Android > 5.0, все хорошо. Пробовал как мне кажется все советы со stackoverflow,
символ либо не отображается, либо отображается квадрат. Использую эмуляторы Genymotion. 
Вот моя тестовая активность:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView textView1 = (TextView)findViewById(R.id.textView1);
        TextView textView2 = (TextView)findViewById(R.id.textView2);
        TextView textView3 = (TextView)findViewById(R.id.textView3);
        TextView textView4 = (TextView)findViewById(R.id.textView4);
        TextView textView5 = (TextView)findViewById(R.id.textView5);

        Typeface typeface = Typeface.createFromAsset(getAssets(), "Roboto-Regular.ttf");
        textView1.setTypeface(typeface);
        textView2.setTypeface(typeface);
        textView3.setTypeface(typeface);
        textView4.setTypeface(typeface);
        textView5.setTypeface(typeface);

        String test1 = "100 $";
        String test2 = "200 \u20BD";
        String test3 = "300 \\u20BD";
        String test4 = "400 ₽";
        String test5 = "500 ₽";

        //textView1.setText(Html.fromHtml(getString(R.string.test_1)));
        //textView2.setText(Html.fromHtml(getString(R.string.test_2)));
        //textView3.setText(Html.fromHtml(getString(R.string.test_3)));
        //textView4.setText(Html.fromHtml(getString(R.string.test_4)));
        //textView5.setText(Html.fromHtml(getString(R.string.test_5)));

        textView1.setText(Html.fromHtml(test1));
        textView2.setText(Html.fromHtml(test2));
        textView3.setText(Html.fromHtml(test3));
        textView4.setText(Html.fromHtml(test4));
        textView5.setText(Html.fromHtml(test5));

        //textView1.setText(test1);
        //textView2.setText(test2);
        //textView3.setText(test3);
        //textView4.setText(test4);
        //textView5.setText(test5);
    }
}


Что я делаю не так?
    


Ответы

Ответ 1



Возьмите последнюю версию шрифта Roboto Regular из официального репозитория: https://github.com/google/roboto/blob/master/src/hinted/Roboto-Regular.ttf На сайте Android design сейчас выложена его устаревшая версия, в ней нет начертаний большинства символов валют.

Комментариев нет:

Отправить комментарий