Подтвердить что ты не робот

Используйте шрифт Roboto в приложении с минимальным уровнем API 14

У меня есть приложение, минимальный уровень API которого равен 14. Правильно ли я считаю, что все совместимые устройства должны иметь шрифт Roboto по умолчанию? Если я установил шрифт textView для Roboto или Roboto Light, он, по-видимому, по умолчанию соответствует стандартным шрифтам sans.

Есть ли способ использовать Roboto без включения шрифта Roboto в качестве актива?

4b9b3361

Ответ 1

Есть ли способ использовать Roboto без включения шрифта Roboto в качестве актив?

Нет другого способа сделать это для API 11 <.

Я обычно создаю пользовательский TextView для шрифта Robot:

public class TextView_Roboto extends TextView {

        public TextView_Roboto(Context context, AttributeSet attrs, int defStyle) {
                super(context, attrs, defStyle);
                createFont();
        }

        public TextView_Roboto(Context context, AttributeSet attrs) {
                super(context, attrs);
                createFont();
        }

        public TextView_Roboto(Context context) {
                super(context);
                createFont();
        }

        public void createFont() {
                Typeface font = Typeface.createFromAsset(getContext().getAssets(), "robo_font.ttf");
                setTypeface(font);
        }
}

Теперь вы можете использовать его в своих макетах следующим образом:

<com.my.package.TextView_Roboto>
  android:layout_width="..."
  android:layout_height="..."
  [...]
</com.my.package.TextView_Roboto>

Конечно, вы можете создать макет TextView. Один для Pre HC, один для HC и выше (вам нужно будет использовать макеты макета и макета-v11). Теперь вы можете использовать тег <include>, чтобы включить TextView в свой макет. Вам просто нужно это сделать:

if (android.os.Build.VERSION.SDK_INT >= 11){
    TextView txt = (TextView) findViewById(R.id.myTxtView);
}
else{
    TextView_Roboto txt = (TextView_Roboto) findViewById(R.id.myTxtView);
}

Edit:

Вы можете использовать Roboto из Android 4.1+ следующим образом:

android:fontFamily="sans-serif"           // roboto regular
android:fontFamily="sans-serif-light"     // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed