1. 实现最简单的spinner

xml文件,有一个TextView,一个Spinner:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
  3. android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
  4. android:paddingRight="@dimen/activity_horizontal_margin"
  5. android:paddingTop="@dimen/activity_vertical_margin"
  6. android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
  7. <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:id="@+id/textView" />
  10. <Spinner
  11. android:layout_width="match_parent"
  12. android:layout_height="wrap_content"
  13. android:id="@+id/spinner"
  14. android:layout_below="@+id/textView"
  15. android:layout_alignParentLeft="true"
  16. android:layout_alignParentStart="true"
  17. android:layout_marginTop="50dp" />
  18. </RelativeLayout>

.java文件

  1. public class MainActivity extends ActionBarActivity {
  2. private static final String[] name={"刘备","关羽","张飞","曹操","小乔"};
  3. private TextView text ;
  4. private Spinner spinner;
  5. private ArrayAdapter<String> adapter;
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. text = (TextView) findViewById(R.id.textView);
  11. spinner = (Spinner) findViewById(R.id.spinner);
  12. //将可选内容与ArrayAdapter连接起来,simple_spinner_item是android系统自带样式
  13. adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,name);
  14. //设置下拉列表的风格,simple_spinner_dropdown_item是android系统自带的样式,等会自己定义改动
  15. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  16. //将adapter 加入到spinner中
  17. spinner.setAdapter(adapter);
  18. //加入事件Spinner事件监听
  19. spinner.setOnItemSelectedListener(new SpinnerSelectedListener());
  20. }
  21. //使用数组形式操作
  22. class SpinnerSelectedListener implements AdapterView.OnItemSelectedListener {
  23. public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
  24. long arg3) {
  25. text.setText("我的名字是:"+name[arg2]);
  26. }
  27. public void onNothingSelected(AdapterView<?> arg0) {
  28. }
  29. }

执行效果:

—————————————————————

使用xml文件作为数据源创建adapter:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string-array name="songs">
  4. <item>没有人</item>
  5. <item>我的快乐时代</item>
  6. <item>黄金时代</item>
  7. <item>习惯失恋</item>
  8. <item>你来自哪颗星</item>
  9. </string-array>
  10. </resources>

.java文件:

  1. public class SpinnerActivity extends Activity {
  2. private TextView text;
  3. private Spinner spinner;
  4. private ArrayAdapter adapter;
  5. @Override
  6. protected void onCreate(Bundle savedInstanceState) {
  7. // TODO Auto-generated method stub
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.spinner);
  10. spinner = (Spinner) findViewById(R.id.spinner);
  11. text = (TextView) findViewById(R.id.textView);
  12. //将可选内容与ArrayAdapter连接起来
  13. adapter = ArrayAdapter.createFromResource(this, R.array.songs, android.R.layout.simple_spinner_item);
  14. //设置下拉列表的风格
  15. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  16. //将adapter2 加入到spinner中
  17. spinner.setAdapter(adapter);
  18. //加入事件Spinner事件监听
  19. spinner.setOnItemSelectedListener(new SpinnerXMLSelectedListener());
  20. }
  21. //使用XML形式操作
  22. class SpinnerXMLSelectedListener implements OnItemSelectedListener{
  23. public void onItemSelected(AdapterView<?> arg0, View arg1, int position,
  24. long arg3) {
  25. text.setText("你使用什么样的手机:"+adapter.getItem(position));
  26. }
  27. public void onNothingSelected(AdapterView<?
  28. > arg0) {
  29. }
  30. }
  31. }

spinner有三个属性能够记一下:

  1. android:spinnerMode="dropdown"
  2. android:dropDownVerticalOffset="-50dp"
  3. android:dropDownHorizontalOffset="20dp"
  4. android:popupBackground="#f0000000"

spinnerMode=dropdown时,为下拉模式

spinnerMode=dialog时,会在界面中间弹出

android:popupBackground=”#f0000000”,能够去除spinner的默认黑边

dropDownVerticalOffset和dropDownHorizontalOffset都是改变下拉框位置的

2.自己定义spinner样式

改变字体颜色、大小和背景:

新建一个xml布局文件,命名为spinner_item.xml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TextView
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="wrap_content"
  6. android:paddingRight="5dp"
  7. android:textColor="#f77718"
  8. android:gravity="left"
  9. android:textSize="15sp"
  10. android:padding="10dp"
  11. android:singleLine="true"
  12. android:text="New Text"
  13. android:id="@+id/textView32" />

再创建一个下拉框样式布局的xml文件。命名为dropdown_stytle.xml:

  1. <?
  2. xml version="1.0" encoding="utf-8"?>
  3. <TextView
  4. xmlns:android="http://schemas.android.com/apk/res/android"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. android:text="New Text"
  8. android:padding="10dp"
  9. android:singleLine="true"
  10. android:textSize="15sp"
  11. android:textColor="#f77718"
  12. android:gravity="left"
  13. android:background="#aa33ac"
  14. android:id="@+id/textView3333" />

改动之前.java中的



为:

  1. adapter = new ArrayAdapter<String>(this,R.layout.spinner_item,name);
  2. adapter.setDropDownViewResource(R.layout.dropdown_style);

假设下拉框有黑边,能够在spinner中加上属性android:popupBackground=”#f0000000”,能够去除spinner的默认黑边,that’s all~

最后的效果图:

android实现下拉框(spinner),自己定义大小颜色背景位置,去掉默认样式黑边的更多相关文章

  1. Android 之 下拉框(Spinner)的使用

    下拉列表 Spinner. Spinner的使用,可以极大提高用户的体验性.当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来.供用户选择. Demo如下,可以留作参考 一.使用数组作为数 ...

  2. 【转】Android 之 下拉框(Spinner)的使用

    原文网址:http://imshare.iteye.com/blog/770950 下拉列表 Spinner. Spinner的使用,可以极大提高用户的体验性.当需要用户选择的时候,可以提供一个下拉列 ...

  3. Android 之 下拉框(Spinner)的使用-转

    下拉列表 Spinner. Spinner的使用,可以极大提高用户的体验性.当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来.供用户选择. Demo如下,可以留作参考 一.使用数组作为数 ...

  4. Android零基础入门第46节:下拉框Spinner

    原文:Android零基础入门第46节:下拉框Spinner 上一期学习了GridView的使用,你已经掌握了吗?本期一起来学习Spinner的使用. 一.认识Spinner Spinner其实就是一 ...

  5. 下拉框spinner

    repositories { flatDir { dirs 'libs' //就是你放aar的目录地址 maven { url "https://jitpack.io" } }}d ...

  6. Android实现三级联动下拉框 下拉列表spinner

    Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...

  7. Android实现三级联动下拉框下拉列表spinner

    原文出处:http://www.cnblogs.com/zjjne/archive/2013/10/03/3350107.html 主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下 ...

  8. 030 Android 第三方开源下拉框:NiceSpinner的使用+自定义Button样式+shape绘制控件背景图+图片选择器(selector)

    1.NiceSpinner下拉框控件介绍 Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框 ...

  9. Android 第三方开源下拉框:NiceSpinner

    Android原生的下拉框Spinner基本上可以满足Android开发对于下拉选项的设计需求,但现在越来越流行的下拉框不满足于Android原生提供的下拉框Spinner所提供的设计样式,而改用自定 ...

随机推荐

  1. Laravel技⃣术⃣特⃣点⃣

    1.Bundle是Laravel的扩展包组织形式或称呼.Laravel的扩展包仓库已经相当成熟了,可以很容易的帮你把扩展包(bundle)安装到你的应用中.你可以选择下载一个扩展包(bundle)然后 ...

  2. [Android Memory] 手动回收ImageVIew的图片资源

    ImageView默认是不进行图片资源的回收的,需要我们自己在activity或者fragment中进行回收: public static void releaseImageViewResouce(I ...

  3. xpages开发的bom管理系统

    domino对流程设计是方便的.假设制作复杂逻辑的应用就难了.可是还是能够实现的,曾经的一个bom管理系统.刚開始想使用java的ssh来做,后来为了统一平台.还是使用domino来做,经过长时间的研 ...

  4. [转]初试visual studio2012的新型数据库LocalDB 及 在visual studio2012中如何使用localDB具体讲解

    本文转自:http://www.cnblogs.com/zhangran/archive/2012/08/26/2657864.html 初试visual studio2012的新型数据库LocalD ...

  5. 两款工控控件对比评测:Iocomp和ProEssentials

    对于程序员来说,要凭一己之力开发出漂亮逼真的工控仪表和工控图表是非常耗时间和精力的,那么使用专业的第三方控件就是不错的选择,不仅节约开发时间,降低了项目风险,最重要的是第三方控件写的程序更专业,工控图 ...

  6. xmodmap使用指南

    什么是 xmodmap 改变按键的行为 修改修饰键的行为 修改鼠标按键行为 Fvwm中的修辞键使用 1. 什么是 xmodmap xmodmap 是一个在 X 图形环境下用于修改键盘和鼠标按钮映射的工 ...

  7. 模拟源码深入理解Vue数据驱动原理(1)

    Vue有一核心就是数据驱动(Data Driven),允许我们采用简洁的模板语法来声明式的将数据渲染进DOM,且数据与DOM是绑定在一起的,这样当我们改变Vue实例的数据时,对应的DOM元素也就会改变 ...

  8. 常用命令(过滤、管道、重定向、ping 命令、netstat 命令、ps命令)

    常用命令 过滤 过滤出 /etc/passwd 文件中包含 root 的记录 grep 'root' /etc/passwd 递归地过滤出 /var/log/ 目录中包含 linux 的记录 grep ...

  9. UVa145 Gondwanaland Telecom

    Time limit: 3.000 seconds 限时:3.000秒 Problem 问题 Gondwanaland Telecom makes charges for calls accordin ...

  10. HTML5学习笔记简明版(5):input的type超级类型

    HTML5为input的type类型添加了多种枚举值,用来表达不同的意思.同事具有验证功能,假设格式不正确,浏览器将原始提供错误提示,堪称超级牛X啊,详细例如以下: Keyword Data type ...