java - 微调器的背景图像出现拉伸(stretch)

标签 java android android-spinner stretched

我创建了一个带有背景自定义图像的下拉微调器。我已将微调器置于线性布局中,并且我已使用权重对齐项目

这是我的代码-

XML-

<LinearLayout
    android:id="@+id/csbar"
    android:windowSoftInputMode="adjustPan"
    android:paddingTop="8dp"
    android:paddingBottom="8dp"
    android:layout_alignParentBottom="true"
    android:layout_width="match_parent"
    android:background="#101010"
    android:layout_height="wrap_content">

    <ImageButton
        android:id="@+id/run"
        android:layout_width="0dp"
        android:layout_height="@dimen/height"
        android:layout_weight="1"
        android:background="@null"
        android:contentDescription="@string/nul"
        android:src="@drawable/ic_action_play" />

    <ImageButton
        android:id="@+id/save"
        android:layout_width="0dp"
        android:layout_height="@dimen/height"
        android:layout_weight="1"
        android:background="@null"
        android:contentDescription="@string/nul"
        android:src="@drawable/ic_action_save" />

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

</LinearLayout>

Java-

int firstC = 0;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    /////I have removed rest of the code to make it more legible/////

    Spinner more = (Spinner) rootView.findViewById(R.id.more);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(),
            R.array.more, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    more.setAdapter(adapter);

    more.setOnItemSelectedListener(this);

}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
        long id) {
    ((TextView)view).setText(null);
}

这是输出-

stretched

如您所见,按大小排序 图标(右侧图标)显示为拉伸(stretch)状态。

我希望它看起来像什么-

target

我的代码有什么问题?请帮忙。

最佳答案

背景图像占用所有给定空间 - LinearLayout 宽度的 1/3。如果你不想让它拉伸(stretch),你可以创建一个可绘制的布局,例如drawable/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"/>

关于java - 微调器的背景图像出现拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26012701/

相关文章:

java - 构建 jar 并包含库 jar

java - 适用于 Ubuntu 12.10 的 Android 模拟器(Arm 安装)?

java - 在这段代码中,异常是如何产生的?

java - 具有独立循环引用的垃圾收集行为?

java - 了解jboss框架-URL

android - Manifest 中定义的 launchmode 是否覆盖通过 intent 标志调用的 launchmode 还是相反?

php - 从 mysql-php(android) 中检索图像

android - Spinner 没有添加数据库中的所有主题

android - 如何创建带有标题的微调器?