我正在开发Android应用程序,我使用简单的自定义操作栏。在我的工具栏中,我使用setLogo()
方法添加了Logo图片,但我的徽标尺寸太大,因此操作栏的高度太高。在我的Android工作室模拟器中它显示完美的小尺寸动作栏但在我的Android手机中我有太大的动作栏。
模拟器在Lolipop(API Level 21)上运行,我的android移动设备在Kitkat上运行。
但在Android模拟器中它显示完美
我的代码:
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(" " + currentChatContact.getName());
getSupportActionBar().setSubtitle(" last seen at 26/05/2015, 05:15 ");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setLogo(R.drawable.boy_thumbnail);
我的工具栏代码是:
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/defaultPrimaryColor"> </android.support.v7.widget.Toolbar>
我正在使用AppCompat:
<style name="AppTheme" parent="AppTheme.Base">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/defaultPrimaryColor</item>
<item name="android:textColorPrimary">@color/textPrimaryColor</item>
<item name="android:textColor">@color/secondaryTextColor</item>
<item name="colorPrimaryDark">@color/darkPrimaryColor</item>
<item name="colorAccent">@color/accentColor</item>
<item name="actionOverflowMenuStyle">@style/CMOptionsMenu</item>
</style>
我还没有为动作栏确定任何高度的图像,但我在移动设备上获得了非常大的图像,如图所示。
请帮我解决这个问题。
答案 0 :(得分:3)
对于工具栏,请移除高度wrap_content
并按此放置
android:layout_height="?attr/actionBarSize"
<强>更新强>
试试这个
Drawable logo=getResources().getDrawable(R.drawable.boy_thumbnail);
getSupportActionBar().setLogo(logo);
for (int i = 0; i < toolbar.getChildCount(); i++) {
View child = toolbar.getChildAt(i);
if (child != null)
if (child.getClass() == ImageView.class) {
ImageView iv2 = (ImageView) child;
if ( iv2.getDrawable() == logo ) {
iv2.setAdjustViewBounds(true);
}
}
}
答案 1 :(得分:1)
用这个替换你的工具栏代码
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary"
android:gravity="center_vertical"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark" />