是否可以在ActionBar中设置一个Icon" Text"使用FontAwesome?
我试过这种方式......
我的菜单项......
<item
android:id="@+id/action_chat"
android:orderInCategory="100"
android:title="@string/action_chat"
app:showAsAction="always"
android:actionLayout="@layout/chat_menu_icon"/>
我的&#39; chat_menu_icon.xml&#39;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<com.bitmakers.techmonster.textview.FontAusomeTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:id="@+id/test"
android:gravity="center|bottom"
android:text="@string/action_chat"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
我的自定义字体类
package com.bitmakers.techmonster.textview;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.widget.TextView;
public class FontAusomeTextView extends TextView {
public static Typeface m_typeFace = null;
public FontAusomeTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
if (isInEditMode()) {
return;
}
loadTypeFace(context);
}
public FontAusomeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
if (isInEditMode()) {
return;
}
loadTypeFace(context);
}
public FontAusomeTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if (isInEditMode()) {
return;
}
loadTypeFace(context);
}
private void loadTypeFace(Context context) {
if (m_typeFace == null)
m_typeFace = Typeface.createFromAsset(context.getAssets(),
"fonts/fontawesome-webfont.ttf");
this.setTypeface(m_typeFace);
}
}
当我在普通文本视图中使用它时,它正在工作
答案 0 :(得分:2)
您可以使用名为android-iconify的漂亮图书馆来实现目标。
以下是在工具栏/操作栏项目上实现它的方法:
your_menu_layout.xml
:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
<item
android:id="@+id/item_settings"
showAsAction="ifRoom"
android:title="@string/title"/>
</menu>
在onCreateOptionsMenu
方法中:
menu.findItem(R.id.item_settings).setIcon(
new IconDrawable(this, FontAwesomeIcons.fa_cog)
.colorRes(R.color.your_color)
.actionBarSize());
你很高兴:)
答案 1 :(得分:0)
使用自定义ActionBar
创建您自己的布局,并使用
将其包含在 xml 中<include.../>