如何在不拉伸图像的情况下setBackgroundDrawable

时间:2017-04-19 09:37:42

标签: android android-layout android-actionbar android-toolbar

在我的Android应用程序中我使用android.support.v7.widget.Toolbar并在MainActivity中设置Action Bar的背景图片:

// Custom Action Bar
if(getSupportActionBar() != null){
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_tug));
}

问题是图标延伸到操作栏的宽度,我不知道如何将其更改为缩放到操作栏的高度,这样图标就不会失去质量。

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="top"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:gravity="top"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

Wrong Image

How it should look like

4 个答案:

答案 0 :(得分:0)

您必须拥有不同分辨率的图像,并在相应的文件夹中添加每个不同的图像,如下所示:

enter image description here

答案 1 :(得分:0)

ImageView内使用Toolbar并将背景设置为ImageView

中的来源
  <android.support.v7.widget.Toolbar
       style="@style/ToolBarStyle"
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:background="?attr/colorPrimary"
       android:minHeight="@dimen/abc_action_bar_default_height_material">

        <ImageView
            android:layout_width="wrap_content"
            android:contentDescription="@string/logo"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"/>

     </android.support.v7.widget.Toolbar>

答案 2 :(得分:0)

我想你想在工具栏中设置图标,在这里你可以做到这一点。

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_tug);

或者您可以在工具栏中选择ImageView并为其添加左边距并从活动中设置图像。

答案 3 :(得分:-1)

您可以使用xml布局将图像添加到工具栏的中心,如下所示。

<android.support.v7.widget.Toolbar
   style="@style/ToolBarStyle"
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="?attr/colorPrimary"
   android:minHeight="@dimen/abc_action_bar_default_height_material">

    <ImageView
        android:layout_width="wrap_content"
        android:contentDescription="@string/logo"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/yourDrawable"/>

 </android.support.v7.widget.Toolbar>