在微调器内部如何在右角设置imageview

时间:2016-03-03 06:54:20

标签: android

 <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"  >
        <Spinner
            android:id="@+id/spinner1_day"
            android:layout_width="70dp"
            android:layout_height="40dp"
            android:src="@drawable/edit_text_style"
            android:text="Day"
            android:textStyle="normal"
            android:textSize="15dp"
            android:fontFamily="sans-serif-light"
            android:drawSelectorOnTop="true"
            android:entries="@array/Day"
            android:dropDownWidth="fill_parent"
            android:background="@drawable/downimage"/>
        <Spinner
            android:id="@+id/spinner2_month"
            android:layout_width="70dp"
            android:layout_height="40dp"
            android:background="@drawable/edit_text_style"
            android:text="Day"
            android:textStyle="normal"
            android:textSize="15dp"
            android:fontFamily="sans-serif-light"
            android:drawSelectorOnTop="true"
            android:entries="@array/Day"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.81"
            android:layout_marginLeft="10dp"
           />
    </LinearLayout>

我使用android:dropDownWidth="fill_parent"android:background="@drawable/downimage",但图片将设置为background.how可以在右上角的微调器内设置imageview吗?

6 个答案:

答案 0 :(得分:2)

               <LinearLayout
                android:id="@+id/layoutSpinner"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/input_field"
                android:orientation="horizontal"
                android:padding="5sp">

                <Spinner
                    android:id="@+id/spinner_area"
                    android:layout_width="0sp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="9"
                    android:background="@null"
                    android:entries="@array/state"
                    android:gravity="center"
                    android:prompt="@string/area_prompt"
                    android:spinnerMode="dropdown" />

                <ImageView
                    android:id="@+id/errow"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:padding="5sp"
                    android:src="@drawable/arrow1" />
            </LinearLayout>

答案 1 :(得分:1)

使用此

在可绘制文件夹中使用任何名称创建XML,例如 spinner_bg.xml ,并添加以下行

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <item><layer-list>
        <item><shape>
                <gradient android:angle="90" android:endColor="#ffffff" android:startColor="#ffffff" android:type="linear" />

                <stroke android:width="1dp" android:color="#504a4b" />

                <corners android:radius="5dp" />

                <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
            </shape></item>
        <item ><bitmap android:gravity="bottom|right" android:src="@drawable/spinner_ab_default_holo_dark_am" />   // you can use any other image here, instead of default_holo_dark_am
        </item>
      </layer-list></item>

 </selector>  

将以下行添加到 styles.xml (位于值文件夹

中)
<style name="spinner_style" >
        <item name="android:background">@drawable/spinner_bg</item>
        <item name="android:layout_marginLeft">10dp</item>
        <item name="android:layout_marginRight">10dp</item>
        <item name="android:layout_marginBottom">10dp</item>
        <item name="android:paddingLeft">8dp</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:paddingBottom">5dp</item>

现在将此样式添加到您的微调器

<Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/spinner_style"
            android:popupBackground="#cccccc" />

有关详细信息,请访问此处。 Android add arrow image to spinner

答案 2 :(得分:0)

尝试使用XML中的drawableRight属性将其设置在spinner的右侧:

android:drawableRight="@drawable/downimage"

答案 3 :(得分:0)

我已经通过使用以下简单代码解决了这个问题

<RelativeLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
       >

        <Spinner
            android:id="@+id/spinner"
            android:layout_width="match_parent"
            android:gravity="center"
            android:layout_height="wrap_content"/>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_centerVertical="true"
            android:layout_marginRight="10dp"
            android:layout_alignParentRight="true"

            android:src="@drawable/ambilwarna_arrow_down" />

    </RelativeLayout>

希望这对您有用。保持编码

答案 4 :(得分:0)

尝试使用FrameLayout创建自定义微调器,我使用它,效果很好

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@drawable/border_spinner_select_location"
    >
<Spinner
    android:spinnerMode="dialog"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/spinner_provinsi"
    android:prompt="@string/promp"
    android:background="@drawable/spinner_pressed"
    ></Spinner>

    <ImageView
        android:layout_width="23dp"
        android:layout_height="30dp"
        android:src="@drawable/ico_arrow_select_white_xxhdpi"
        android:layout_gravity="right|center_vertical"
        android:layout_marginRight="25dp"
        />
</FrameLayout>

用于边界线:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:thickness="0dp"
    android:shape="rectangle">
    <solid android:color="@android:color/transparent" />
    <stroke android:width="2dp"
        android:color="@android:color/white" />
</shape>

按下微调器时的效果

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_enabled="false"
        android:drawable="@android:color/white" />
    <item android:state_pressed="true"
        android:drawable="@color/deep_white_pressed_spinner" />
    <item android:state_pressed="false" android:state_focused="true"
        android:drawable="@android:color/holo_blue_bright" />
    <item android:drawable="@color/semi_white_transparant" />

</selector>

答案 5 :(得分:0)

dummy.xml(drawable应该是非常小的-24dp)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list android:opacity="transparent">
            <item android:width="100dp" android:gravity="right">
                <bitmap android:src="@drawable/down_button_dummy_dummy" android:gravity="center"/>
            </item>
        </layer-list>
    </item>
</selector>

布局代码段就像......

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardUseCompatPadding="true"
        app:cardElevation="5dp"
        >
     <Spinner
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="@drawable/dummy">

     </Spinner>
    </android.support.v7.widget.CardView>

click here for rendered layout