【问题标题】:Unable to make background color of spinner in Android无法在 Android 中制作微调器的背景颜色
【发布时间】:2014-03-26 11:03:27
【问题描述】:

我想要通过程序化的微调器的背景颜色,但我没有得到。这是我对 xml 和 .java 文件的描述。

第 1 步:这是我的微调器 xml 文件。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_marginTop="5dp"
    android:background="@drawable/yourorder_form_bg"
    android:orientation="vertical"
    android:padding="10dp"
    android:visibility="visible"
    android:weightSum="1" >

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    />

<Spinner
    android:id="@+id/spinner2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
        />

在我的 .java 文件中我写了简单的

spinner1 = (Spinner) findViewById(R.id.spinner1);
    List<String> list = new ArrayList<String>();
    list.add("Android");
    list.add("Java");
    list.add("Spinner Data");
    list.add("Spinner Adapter");
    list.add("Spinner Example");

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(dataAdapter);
    spinner1.setBackgroundColor(0x0000FF);

这里我没有收到任何错误,我只获得了 LinearLayout 背景颜色的颜色。

【问题讨论】:

  • 显示更多代码。你如何初始化 spinner1?

标签: android xml android-layout


【解决方案1】:

添加 xml spinner 标签

            android:background="#color code"

喜欢这里编辑的代码

<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
 android:background="#000000"
/>


<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
 android:background="#232323"
/>

【讨论】:

  • 通过编程我想实现那个。
【解决方案2】:

是的,您可以通过编程方式更改,只需检查您编辑的代码

spinner1 = (Spinner) findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
list.add("Android");
list.add("Java");
list.add("Spinner Data");
list.add("Spinner Adapter");
list.add("Spinner Example");

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(dataAdapter);
spinner1.setBackgroundColor(Color.GREEN);

【讨论】:

    【解决方案3】:

    您可以像这样在 xml 中设置微调器的背景颜色:

    android:background="YOUR_HEX_COLOR_CODE"
    

    如果你在微调器中使用下拉菜单,你可以像这样设置它的背景颜色:

    android:popupBackground="YOUR_HEX_COLOR_CODE"
    

    文件

    res/drawable/mybg.xml

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"
        android:opacity="transparent">
        <item
            android:state_pressed="true">
            <shape android:shape="rectangle">
                <solid android:color="#AAFFAA00"/>
            </shape>
        </item>
        <item 
            android:state_selected="true">
            <shape android:shape="rectangle">
                <solid android:color="#AAFFAA00"/>
            </shape>
        </item>
        <item android:drawable="@drawable/ic_launcher"></item>
    </layer-list>
    
    sp1.setOnTouchListener(new OnTouchListener() {
    
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    sp1.setBackgroundResource(R.drawable.mybg);
    }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多