可绘制的设置为Spinner背景延伸出来

时间:2017-06-16 18:39:18

标签: android

您可以在此处查看我的布局,其中Spinner的可绘制ic_menu_preferences设置为其背景,相对于具有相同可绘制的ImageButton延伸

enter image description here

如何在不拉伸drawable的情况下向Spinner背景添加drawable?

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

        <Spinner
            android:id="@+id/dropdownMenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:background="@android:drawable/ic_menu_preferences"
            />

        <ImageButton
            android:id="@+id/scannerSettingsButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:background="@android:drawable/ic_menu_preferences"
            android:layout_marginRight="10dp"
            />

        <ToggleButton
            android:id="@+id/scannerButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#00000000"
            android:layout_gravity="end"
            android:textOn="SCAN"
            android:textOff="STOP"/>

        <ProgressBar
            android:id="@+id/progress_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:indeterminate="true"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="15dp"
            android:layout_gravity="end"
            />

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

这是Java代码

dropdownMenu = (Spinner) findViewById(R.id.dropdownMenu);
List<String> list = new ArrayList<>();
list.add("");
list.add("list 2");
list.add("list 3");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this,
        android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dropdownMenu.setAdapter(dataAdapter);

1 个答案:

答案 0 :(得分:1)

找到答案here

背景图像占用了所有给定的空间 - LinearLayout宽度的1/3。如果您不希望它伸展,您可以创建一个可绘制的布局,例如可拉伸/ my_sort_icon:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/ic_action_sort_by_size"
    android:tileMode="disabled"
    android:gravity="center" />

并将其用作Spinner中的背景图片:

<Spinner
    android:id="@+id/more"
    android:layout_width="0dp"
    android:layout_weight="1"
    android:background="@drawable/my_sort_icon"
    android:layout_height="@dimen/height"/>