android系统自带的Spinner样式是远远满足不了我们实际开发过程中对Spinner UI风格的要求,因此我们肯定须要为了切合整个应用的风格,改动我们的Spinner样式。系统给我们提供了两种常见的改动方式,一个是用XML方式静态。还有一个就是Java代码动态来改动啦,我们这篇文章呢主要就是介绍怎样动态改动Spinner的样式。我的实现方法呢,是自己构造一个SpinnerAdapter。继承来自ArrayAdapter。重写getDropDownView(),getView()这两个方法就好了。其它的方法并不关键,跟其它ListView之类的并无太大区别。

那么如今我们就直接来看代码解析把。

  1. package com.example.account.add;
  2.  
  3. import android.content.Context;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.ArrayAdapter;
  8. import android.widget.TextView;
  9.  
  10. public class SpinnerAdapter extends ArrayAdapter<String> {
  11. private Context mContext;
  12. private String[] mStringArray;
  13.  
  14. public SpinnerAdapter(Context context, String[] stringArray) {
  15. super(context, android.R.layout.simple_spinner_item, stringArray);
  16. mContext = context;
  17. mStringArray = stringArray;
  18.  
  19. }
  20.  
  21. @Override
  22. public View getDropDownView(int position, View convertView, ViewGroup parent) {
  23. // 改动Spinner展开后的字体颜色
  24. if (convertView == null) {
  25. LayoutInflater inflater = LayoutInflater.from(mContext);
  26. //我们也能够载入自己的Layout布局
  27. convertView = inflater.inflate(
  28. android.R.layout.simple_spinner_dropdown_item, parent,
  29. false);
  30. }
  31. TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
  32. tv.setText(mStringArray[position]);
  33. tv.setTextSize(15);
  34. return convertView;
  35.  
  36. }
  37.  
  38. @Override
  39. public View getView(int position, View convertView, ViewGroup parent) {
  40. // 改动Spinner选择后结果的字体颜色
  41. if (convertView == null) {
  42. LayoutInflater inflater = LayoutInflater.from(mContext);
  43. convertView = inflater.inflate(
  44. android.R.layout.simple_spinner_item, parent, false);
  45. }
  46. // 此处text1是Spinner系统的用来显示文字的TextView
  47. TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
  48. tv.setText(mStringArray[position]);
  49. tv.setTextSize(15);
  50. return convertView;
  51. }
  52.  
  53. }

Android开发之自己定义Spinner样式的效果实现(源码实现)的更多相关文章

  1. Android开发之使用Handler封装下载图片工具类(源码分享)

    假设每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时能够调用. (1)在清单文件加入权限 <us ...

  2. Android开发之自定义Spinner样式的效果实现(源代码实现)

    android系统自带的Spinner样式是远远满足不了我们实际开发过程中对Spinner UI风格的要求,因此我们肯定需要为了切合整个应用的风格,修改我们的Spinner样式.系统给我们提供了两种常 ...

  3. Android开发之自己定义TabHost文字及背景(源码分享)

    使用TabHost 能够在一个屏幕间进行不同版面的切换,而系统自带的tabhost界面较为朴素,我们应该怎样进行自己定义改动优化呢 MainActivity的源码 package com.dream. ...

  4. Android开发之去掉listview的点击效果,一行代码间接粗暴,解决你的问题。

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 Android开发之去掉listview的点击效果,一行代码间接粗暴,解决你的问题. 当你在用list ...

  5. 【转】Android事件分发机制完全解析,带你从源码的角度彻底理解(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9153761 记得在前面的文章中,我带大家一起从源码的角度分析了Android中Vi ...

  6. [转]Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

    Android事件分发机制 该篇文章出处:http://blog.csdn.net/guolin_blog/article/details/9097463 其实我一直准备写一篇关于Android事件分 ...

  7. 转:微信开发之使用java获取签名signature(贴源码,附工程)

    微信开发之使用java获取签名signature(贴源码,附工程) 标签: 微信signature获取签名 2015-12-29 22:15 6954人阅读 评论(3) 收藏 举报  分类: 微信开发 ...

  8. Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正

    Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正 http://blog.csdn.net/jiangwei0910410003/article/details/51 ...

  9. Web 开发中很实用的效果【源码下载】

    网页特效下载 引用地址:http://www.yyyweb.com/350.html 超炫的页面切换动画效果 今天我们想与大家分享一组创意的页面切换熊效果集合.我们已经在示例中罗列了一组动画,可以被应 ...

随机推荐

  1. Yii1 用commandBuilder方法往数据表中插入多条记录

    $builder = Yii::app()->db->schema->commandBuilder; // 创建builder对象 $command = $builder->c ...

  2. Linux环境下挂载SD卡的教程

    1.插入SD卡 如果系统能够识别SD卡,则会打印一些信息: 2.查看系统给SD卡分配的设备名 命令如下: fdisk -l 命令 说明:通常是根据SD卡的存储容量来确定的. 比如下面的信息: 3.挂载 ...

  3. root连接ubuntu18.04“拒绝访问”的解决方法

    1.设置root账户 sudo passwd root 2.ssh远程登陆拒绝访问:修改SSH配置文件 sudo vim /etc/ssh/sshd_config 找到并用#注释掉这行:PermitR ...

  4. Django 1.8.11 REST风格路由

    # -*- coding: utf-8 -*- """ Tencent is pleased to support the open source community b ...

  5. my97datepicker插件日期值改变事件 等同于input的onchang()时间

    官网Demo地址http://www.my97.net/demo/index.htm <input type="text" class="Wdate" v ...

  6. 算法导论 第九章 中位数和顺序统计量(python)

    第i个顺序统计量:该集合中第i小的元素(建集合排序后第i位 当然算法可以不排序) 中位数:集合中的中点元素 下中位数 上中位数 9.1最大值和最小值 单独的max或min每个都要扫一遍 n-1次比较 ...

  7. python021 Python3 错误和异常

    Python3 错误和异常 作为Python初学者,在刚学习Python编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍. Python有两种错误很容易辨认:语法错误和异常. ...

  8. Laya Tween 和 遮罩

    Laya Tween 和 遮罩 @author ixenos 场景:在使用Tween循环时,不规则物体部分超出范围 方案:使用遮罩定型 困境:在laya ide设计模式中将遮罩sprite放到不规则物 ...

  9. Halloween Costumes(区间DP)

    Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he is planning t ...

  10. Flex嵌入HTML页面

    这段时间一直在苦心研究Flex,今天突然想,我们平时都是把swf放到网页中,怎么才能把网页嵌入到Flex中呢?我查了一些资料,然后经过自己的不懈努力,终于搞定. 为了方便,写了个嵌入HTML页面的代理 ...