Czy istnieje sposób użycia Roboto bez uwzględnienia czcionki Roboto jako zasobu ?
Nie ma innego sposobu na zrobienie tego dla API 11 <.
zwykle utworzyć niestandardową TextView dla czcionki 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);
}
}
Teraz można go używać w układach tak:
<com.my.package.TextView_Roboto>
android:layout_width="..."
android:layout_height="..."
[...]
</com.my.package.TextView_Roboto>
Oczywiście można stworzyć układ TextView. Jeden dla Pre HC, jeden dla HC i powyżej (Będziesz musiał skorzystać z folderów układu i layoutu-v11). Teraz możesz użyć znacznika <include>
, aby dołączyć TextView do swojego Układu. Po prostu trzeba robić to zastosowanie to wtedy:
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:
Można użyć ROBOTO natywnie z Androidem 4.1+ tak:
android:fontFamily="sans-serif" // roboto regular
android:fontFamily="sans-serif-light" // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed
myślę, że nie możemy zrobić to –
Dlaczego nie dodajesz .ttf do swojego zasobu i używasz go jako 'TypeFace'? (Jeśli dobrze rozumiem twoje pytanie) –
Nie chcę dodawać czcionki Roboto jako zasobu, ponieważ moja aplikacja ma minimalny poziom API wynoszący 14, więc Roboto powinien już być na zgodnych urządzeniach. – Milo