Android
아이콘 글꼴을 사용하여 Android 성능 향상시키기
수색…
비고
아이콘 글꼴은 문자 대신 기호가있는 일반적인 글꼴 유형과 같습니다. 대부분의 경우 쉽게 응용 프로그램에서 사용할 수 있습니다.
그들은:
- 융통성 있는
- 확장 성
- 벡터
- 빠른 처리 가능
- 가벼운 무게
- 얻기 쉬운
크기에 미치는 영향
다양한 크기의 이미지를 Android 기기 용으로 내보내려면 앱당 비용이 들며 이미지 당 약 30kB의 추가 애셋 크기가 필요합니다. 약 36 개의 아이콘이있는 글꼴 파일 (.ttf)을 추가하는 데 드는 비용은 9kB에 불과합니다. 다양한 구성의 36 개의 개별 파일을 추가하는 경우 1000kB 정도가 될 것이라고 상상해보십시오. 아이콘 글꼴을 사용하여 절약 할 수있는 공간입니다.
아이콘 글꼴의 제한 사항.
탐색 서랍에서 아이콘 글꼴을 사용할 수 있습니다. 제목을 지정하지 않고 메뉴 파일을 만들 수 없으므로 메뉴 항목의 아이콘으로 탐색보기에서 해당 항목을 사용할 수 없습니다. 따라서 svg 파일을이 아이콘의 자원으로 사용하는 것이 좋습니다.
플로팅 액션 버튼에는 아이콘 글꼴을 사용할 수 없습니다.
setText()
특성이 없기 때문입니다.외부 글꼴은 xml에서 적용 할 수 없습니다. Java 파일을 사용하여 지정해야합니다. 아니면 기본보기를 확장하고이 게시물에 지정된대로보기를 작성해야합니다.
아이콘 글꼴을 통합하는 방법
아이콘 글꼴을 사용하려면 다음 단계를 따르십시오.
프로젝트에 글꼴 파일 추가
icomoon 과 같은 온라인 웹 사이트에서 글꼴 아이콘 파일을 만들 수 있습니다. icomoon 에서는 필요한 아이콘의 SVG 파일을 업로드 한 다음 생성 된 아이콘 글꼴을 다운로드 할 수 있습니다. 그런 다음 .ttf 글꼴 파일을 assets 폴더에 fonts 라는 폴더에 저장합니다 (원하는 이름 지정).
도우미 클래스 만들기
이제 글꼴에 대한 초기화 코드를 반복하지 않도록 다음 도우미 클래스를 만듭니다.
public class FontManager { public static final String ROOT = "fonts/"; FONT_AWESOME = ROOT + "myfont.ttf"; public static Typeface getTypeface(Context context) { return Typeface.createFromAsset(context.getAssets(), FONT_AWESOME); } }
애셋에서
Typeface
를 선택하기 위해Typeface
클래스를 사용할 수 있습니다. 이 방법으로 서체를 다양한보기 (예 : 버튼)로 설정할 수 있습니다.Button button=(Button) findViewById(R.id.button); Typeface iconFont=FontManager.getTypeface(getApplicationContext()); button.setTypeface(iconFont);
이제 버튼 글꼴이 새로 생성 된 아이콘 글꼴로 변경되었습니다.
원하는 아이콘을 선택하십시오.
아이콘 글꼴에 첨부 된 styles.css 파일을 엽니 다. 여기서 아이콘의 유니 코드 문자로 스타일을 찾을 수 있습니다.
.icon-arrow-circle-down:before { content: “\e001”; } .icon-arrow-circle-left:before { content: “\e002”; } .icon-arrow-circle-o-down:before { content: “\e003”; } .icon-arrow-circle-o-left:before { content: “\e004”; }
이 리소스 파일은 특정 아이콘과 연관된 유니 코드 문자를 사람이 읽을 수있는 이름으로 매핑하는 사전 역할을합니다. 이제 다음과 같이 문자열 리소스를 만듭니다.
<resources> <! — Icon Fonts --> <string name=”icon_arrow_circle_down”> </string> <string name=”icon_arrow_circle_left”> </string> <string name=”icon_arrow_circle-o_down”> </string> <string name=”icon_arrow_circle_o_left”> </string> </resources>
코드의 아이콘 사용
이제 다음과 같이 다양한보기에서 글꼴을 사용할 수 있습니다.
button.setText(getString(R.string.icon_arrow_circle_left))
아이콘 글꼴을 사용하여 버튼 텍스트보기를 만들 수도 있습니다.
아이콘 글꼴이있는 TabLayout
public class TabAdapter extends FragmentPagerAdapter {
CustomTypefaceSpan fonte;
List<Fragment> fragments = new ArrayList<>(4);
private String[] icons = {"\ue001","\uE002","\uE003","\uE004"};
public TabAdapter(FragmentManager fm, CustomTypefaceSpan fonte) {
super(fm);
this.fonte = fonte
for (int i = 0; i < 4; i++){
fragments.add(MyFragment.newInstance());
}
}
public List<Fragment> getFragments() {
return fragments;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
SpannableStringBuilder ss = new SpannableStringBuilder(icons[position]);
ss.setSpan(fonte,0,ss.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
ss.setSpan(new RelativeSizeSpan(1.5f),0,ss.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE );
return ss;
}
@Override
public int getCount() {
return 4;
}
}
- 이 예제에서 myfont.ttf는 Assets 폴더에 있습니다. 자산 폴더 생성
- 당신의 활동 수업에서
//..
TabLayout tabs;
ViewPager tabs_pager;
public CustomTypefaceSpan fonte;
//..
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
fm = getSupportFragmentManager();
fonte = new CustomTypefaceSpan("icomoon",Typeface.createFromAsset(getAssets(),"myfont.ttf"));
this.tabs = ((TabLayout) hasViews.findViewById(R.id.tabs));
this.tabs_pager = ((ViewPager) hasViews.findViewById(R.id.tabs_pager));
//...
}
@Override
protected void onStart() {
super.onStart();
//..
tabs_pager.setAdapter(new TabAdapter(fm,fonte));
tabs.setupWithViewPager(tabs_pager);
//..