片段中的按钮上的自定义字体和图标

时间:2018-07-30 20:39:59

标签: android fragment

我想让片段中的电子菜单更具自定义性。该代码对我创建的Button-Symbol进行了一些调整(顺便说一句,有没有更好的解决方案?)Button的文本和字体也已自定义。

该代码在独立活动中运行,在Fragment中运行不再起作用:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_main, container,true);
    final Button events = view.findViewById(R.id.events);
    // BUTTON FONT THEME
    String etext = "<font color=#FFFFFF>NEXT</font> <font color=#8def00> EVENTS </font>";
    if (Build.VERSION.SDK_INT >= 24) {
        events.setText(Html.fromHtml(etext, 0)); // for 24 api and more
    } else {
        events.setText(Html.fromHtml(etext)); // or for older api
    }
    events.setTypeface(ralewayfont);
    Drawable iconevents =   ContextCompat.getDrawable(getApplicationContext(),R.drawable.ic_calendar);
    int WIconCal = iconevents.getIntrinsicWidth();
    int HIconCal = iconevents.getIntrinsicHeight();
    iconevents.setBounds(0,0,WIconCal/3,HIconCal/3);
    events.setCompoundDrawables(iconevents, null, null, null);
}

它不会给我任何错误-它不会调整图像的大小,也不会在按钮上设置自定义字体。

1 个答案:

答案 0 :(得分:0)

您应该制作更多针对特定API版本的布局文件。在您的情况下,我将创建一个/res/layout-v24/fragment_main.xml并在其中设置特定于v24的按钮属性。无需执行您在代码段中所做的所有工作。只需像您一样对布局进行充气,将按钮连接到findViewById(),如果Android OS检测到使用v24或更高版本的手机,它将自动知道使用layout-v24版本。 v24以下的任何版本都将使用默认的/res/layout/fragment_main.xml

希望有帮助!