前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发之自定义Spinner

Android开发之自定义Spinner

作者头像
YungFan
发布2018-04-24 15:13:45
1.7K0
发布2018-04-24 15:13:45
举报
文章被收录于专栏:学海无涯
自定义Spinner,需要定制的有默认背景、按下背景,显示时每一项的样式以及弹出时每一项的样式四个方面。下面举个简单例子。

</br>

1、准备两张图片,处理为.9png,分别为spinner.9.png和spinner_press.9.png,作为背景,如下图所示

spinner.9.png

spinner_press.9.png

2、在drawable中定义spinner_selector.xml,定义两种状态分别对应上面两种颜色
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true"   
        android:drawable="@drawable/spinner_press" /><!--按下时效果-->  
    <item android:state_pressed="false"   
        android:drawable="@drawable/spinner" /><!--默认效果-->   
</selector>
3、定义一个style,也可以直接放在布局中,我为了复用拿出来单独定义了
代码语言:javascript
复制
<!-- spinner -->
<style name="spinner_style">
    <item name="android:background">@drawable/spinner_selector</item>
    <item name="android:paddingLeft">5dip</item>
</style>
4、在布局的Spinner中引用上述style
代码语言:javascript
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Spinner
        android:id="@+id/field_item_spinner_content"
        style="@style/spinner_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="10dp" />
</RelativeLayout>
5、每一项的样式 simple_spinner_item.xml
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:paddingLeft="5dip"
    android:paddingRight="5dip"
    android:singleLine="true"
    android:textColor="#808080" />
6、弹出时的每一项显示布局 my_drop_down_item.xml
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dip"
    android:textColor="#000000"
    android:textSize="15dp" >
</TextView>
7、定义一个字符数组,作为数据显示
代码语言:javascript
复制
<string-array name="meinv">
   <item>美女1</item>
   <item>美女2</item>
   <item>美女3</item>
   <item>美女4</item>
   <item>美女5</item>
   <item>美女6</item>
   <item>美女7</item>
</string-array>
8、Activity
代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        Spinner spinner = (Spinner) findViewById(R.id.field_item_spinner_content);

        //资源转[]
        String meinv[] = getResources().getStringArray(R.array.meinv);

        //构造ArrayAdapter
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                R.layout.simple_spinner_item, meinv);
        //设置下拉样式以后显示的样式
        adapter.setDropDownViewResource(R.layout.my_drop_down_item);

        spinner.setAdapter(adapter);
    }
}
9、测试效果

自定义Spinner.gif

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.05.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自定义Spinner,需要定制的有默认背景、按下背景,显示时每一项的样式以及弹出时每一项的样式四个方面。下面举个简单例子。
  • 1、准备两张图片,处理为.9png,分别为spinner.9.png和spinner_press.9.png,作为背景,如下图所示
  • 2、在drawable中定义spinner_selector.xml,定义两种状态分别对应上面两种颜色
  • 3、定义一个style,也可以直接放在布局中,我为了复用拿出来单独定义了
  • 4、在布局的Spinner中引用上述style
  • 5、每一项的样式 simple_spinner_item.xml
  • 6、弹出时的每一项显示布局 my_drop_down_item.xml
  • 7、定义一个字符数组,作为数据显示
  • 8、Activity
  • 9、测试效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档