怎样获得android上的字体列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样获得android上的字体列表相关的知识,希望对你有一定的参考价值。
我想获得列表,然后在listView中展示,这样可以选择组件上的字体样式。
参考技术A 怎样遍历自定义的字体自定义的字体放在assets/fonts/下 参考技术B 遍历system/fonts/目录下的字体文件,然后将其路径放入到List中,然后显示出来不就可以了吗?列表视图的子视图
【中文标题】列表视图的子视图【英文标题】:Child view of list view 【发布时间】:2015-05-13 06:19:36 【问题描述】:我有包含多个 textview 和 imageview 的自定义列表视图。我想获得那个视图。我怎样才能得到它。我的代码如下。我想在整个 aap 上应用字体样式。它对所有人都很好查看 bt 不在列表视图的适配器中。请建议我。
public class BaseFragment extends Fragment
private Typeface typeace;
@Override
public void onCreate(Bundle savedInstanceState)
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
typeace = Typeface.createFromAsset(getActivity().getAssets(), getResources().getString(R.string.font_name_fragment));
//FlurryAgent.init(getActivity(), getResources().getString(R.string.flurry_key));
@Override
public void onActivityCreated(Bundle savedInstanceState)
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
// TODO Auto-generated method stub
super.onViewCreated(view, savedInstanceState);
overrideFonts(getActivity(), view);
private void overrideFonts(final Context context, final View v)
try
if (v instanceof ViewGroup)
ViewGroup vg = (ViewGroup) v;
for (int i = 0; i < vg.getChildCount(); i++)
View child = vg.getChildAt(i);
overrideFonts(context, child);
else if (v instanceof TextView)
((TextView) v).setTypeface(typeace);
else if (v instanceof EditText)
((EditText) v).setTypeface(typeace);
catch (Exception e)
e.printStackTrace();
【问题讨论】:
我想在窗口的每个视图中应用字体样式,但它在列表中的适配器中不起作用。 欢迎来到 Stack Overflow!请阅读how to ask 如果你有答案建议在这里。maybe
你能展示你完整的课程吗?
【参考方案1】:
你可以如下获取ListView中的列表项,并添加自己的字体
listView.setOnItemClickListener(new OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
TextView txtView = (TextView) view.findViewById(R.id.txt_view);
txtView.setTypeface(typeace);
);
或者在适配器中也作为
@Override
public View getView(int position, View convertView, ViewGroup parent)
ViewHolder holder;
View view = null;
if (view == null)
view = layoutInflater.inflate(R.layout.child_layout, parent, false);
holder = new ViewHolder();
holder.txt = (TextView) view.findViewById(R.id.txt_view);
holder.txt.setTypeFace(typeface);
view.setTag(holder);
else
holder = (ViewHolder) view.getTag();
holder.txt.setText("Text");
return view;
【讨论】:
我有很多列表视图,我无法通过这个在每个 n evry textview 上修复它 尝试编写一个接受参数 View 的 Fonts 类,将 TextView 发送到该类并在 Fonts 类中设置字体以上是关于怎样获得android上的字体列表的主要内容,如果未能解决你的问题,请参考以下文章