我正在尝试在我的ActionBar中设置自定义图标和文字,就像WhatsApp那样(个人资料图片和用户名)。
ActionBar ab = getSupportActionBar();
BitmapDrawable actionBarBackground = new BitmapDrawable(getResources(), chatPartner.getAvatar(this));
ab.setDisplayUseLogoEnabled(true);
ab.setLogo(actionBarBackground);
ab.setTitle(chatPartner.getUsername());
但不显示徽标,只显示标题。
答案 0 :(得分:0)
你正在混合概念。您正在使用没有图标的新Toolbar。 Whatsapp使用的是旧的ActionBar,它有一个图标。这就是为什么你没有看到图标,因为新的工具栏没有。您可能正在使用AppCompat库并使用AppCompat库,它负责为您提供工具栏,即使在代码中您使用ActionBar引用它。
编辑:好的,如果你有充分的理由使用带有图标的旧ActionBar,你可以使用支持库的第19版
compile 'com.android.support:appcompat-v7:19.1.0'
并定位sdk 19
targetSdkVersion 19
您的代码应该开箱即用。
答案 1 :(得分:0)
您可以尝试使用自定义操作栏:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.slide_menu); //you can set here image
getSupportActionBar().setIcon(null);
getSupportActionBar().setBackgroundDrawable(
getResources().getDrawable(R.drawable.signinheader));
LayoutInflater inflator = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.actionbar_layout, null);// custom layout
actionBartitle = (TextView) v.findViewById(R.id.tvTitle);
actionBartitle.setText(getResources()
.getString(R.string.my_london_trip));
getSupportActionBar().setCustomView(v);
注意:您可以使用actionbarTitle.settext("TEXT")
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:background="@drawable/signinheader" >
<TextView
android:id="@+id/tvTitle"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:text="@string/title_activity_forgot_password"
android:textColor="@color/white"
android:textSize="20sp"
android:visibility="visible" />
<TextView
android:id="@+id/tvCartCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:background="@drawable/cart1"
android:gravity="center_horizontal"
android:paddingLeft="4dp"
android:paddingTop="4.5dp"
android:text="1"
android:textColor="@color/audio_guide_palyer_back"
android:textSize="10sp"
android:visibility="visible" />
</RelativeLayout>
答案 2 :(得分:0)
试试这个:
getSupportedActionBar()的setIcon(R.drawable.my_icon);
答案 3 :(得分:0)