我想使用自定义图片更改Android中的默认微调器图标箭头。
我制作了自定义微调器(基于这个答案:How to customize a Spinner in Android,只是更改自定义值)并且效果很好但是我无法在样式上或以编程方式更改微调器的箭头。
我看到了这个问题:How to change image of a spinner但由于我没有Spinner
标记,因此我不允许添加属性android:spinnerSelector
。
如何用图像替换默认箭头图标?
提前致谢!
答案 0 :(得分:3)
简短的例子:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this,
R.layout.custom_spinner,
ITEMS
);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
然后为spinner:
创建一个自定义xml(名为:custom_spinner.xml)<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="yourTextsize"
android:drawablePadding="paddingValueYouWant"
android:drawableRight="@drawable/ic_arrow_down" <!--your custom icon-->
/>
要获得更多自定义微调器,请遵循以下artircle:How to set font custom font to Spinner text programmatically?
答案 1 :(得分:1)
你可以直接改变风格,
<style name="CustomSpinnerTheme" parent="android:Widget.Spinner">
<item name="android:background">@drawable/spinner_arrow</item>
</style>
只需使用您想要的可绘制图标,然后在微调器中设置主题
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CustomSpinnerTheme"/>
答案 2 :(得分:0)
Do something like this. It works great!
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="42dp"
android:layout_marginLeft="42dp">
<Spinner
android:id="@+id/country_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:prompt="@string/country_prompt"
android:background="@null">
</Spinner>
<ImageView
android:layout_width="14dp"
android:layout_height="14dp"
android:src="@drawable/spinner_arrow"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"/>
</RelativeLayout>