使得spinner和spinner中item有不同的背景图片-------自定义spinner,设计出你想要的spinner!

遇到问题描述:

spinner样式的使用,系统自带的不能说是一般的丑,并且跟你设计的风格完全不合拍,但对于spinner通过改变背景

图片的方式使其看起来更加的美观,更符合我们的审美设计。我遇到的问题是,对于item和spinner都设计为同一个背景图片,如果不同,当选择

item之后,item的值会直接把spinner中图片覆盖掉,使得spinner得不到预期的显示,但spinner和item中有相同的背景图片有不太合适。问题就是

使得spinner和spinner中item有不同的背景图片?

看一个效果图当点击spinner的时候显示的下拉效果

spinner中的item通过setadapter来进行动态添加,api本身就有一个spinneradapter,重写其中getdropdownview就好了!

1、spinner由两个layout view来自定义,分别负责显示的spinner(如图一部分)和点击后显示的item(如图二部分)的一个布局情况

2、重写adapter方法(网上很多的arrayadapter,但都引用的android.r.layout.simple_spinner_item.xml系统自带),一般是继承baseadapter重写 getView()和getdropdownview这

两个方法。getview修改了spinner中显示的样式(即layout的布局),getdropdownview决定了item中显示的样式。

所有认识清楚了这两点定义自定义的spinner也不是什么难题。

本效果图的作法:

1、定义spinner,设置背景为带有三角标的图片作为背景色。

2、对于getView中和getdropdownview中使相同代码(只是两处的使用layout不一样),layout的不同点也仅仅是背景色不同(getview中的layout没有背景图片,getdropdownview设定了灰色背景图片)

本文主要解决了spinner自定义样式的的问题,对于spinner有了更深的认识。每个人遇到的问题不一样,解决方法也不唯一,仅供参考。

欢迎拍砖!

时间: 2024-10-12 15:11:15

使得spinner和spinner中item有不同的背景图片-------自定义spinner,设计出你想要的spinner!的相关文章

CSS Sprites技术(将背景图整合到一张图中,再利用CSS背景图片定位到要显示的位置)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

DIV+CSS中让布局居中_背景图片居中_文字内容居中

DIV+CSS中让布局居中_背景图片居中_文字内容居中

laravel项目中css样式表的背景图片不显示

刚学laravel,遇到了很多坑,感觉laravel是挺强大的. 建好后台项目,奈何css样式表的背景图片不显示 .mainhd { background: url(../images/sky/body_bg.png) repeat-x 0px 0px; } 按理上面的写法没错,因为是从别的后台搬过来的,但是图片一直不显示,访问绝对路径却又能显示图片,坑. 原因是因为图片路径要使用单引号或者双引号的,下面是正确的写法 .mainhd { background: url('../images/sk

Android启动过程中背景图片显示

转自:http://blog.csdn.net/zhangzhikaixinya/article/details/17001321 大部分Android App启动过程中,都会设置一个背景图片,直到App加载成功,图片消失.因此,这也是做Android App的基本技能之一.这个过程实现起来并不难. 总共需要以下内容:2个Activity,一张背景图,2个xml配置文件,String.xml,AndroidManifest写入配置信息. 1 准备一张背景图图片,命名为load,自己选择图片格式.

QWidget窗体中使用Q_OBJECT后无法添加背景图片或背景色

在继承自QWiget的窗体中,设置背景图片或背景色比较简单的方法是使用setStyleSheet()函数,比如在构造函数中可以这样来设置背景图片: this->setStyleSheet("border-image: url(:/background.jpg)"); 但是如果窗体类中使用了Q_OBJECT,则这种方法没有效果,解决办法是使用setAttribute()函数,如下: this->setAttribute(Qt::WA_StyledBackground); th

自定义类似于listView中Item背景

方法一. drawable/listitem_bk.xml Xml代码   <?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 没有焦点时的背景图片 --> <item android:state_window_focused=&

改变listview中item选中时文字的颜色

当listview的某个item选中时,默认有个选中的高亮显示,如果你要自定义选中时的高亮显示效果,可以在listview中设置属性 1 android:listSelector="@drawable/item_selector" 其中item_selector是在drawable目录下定义的一个xml文件,这种用于突出不同状态下显示效果的xml文件我们称之为selector: 1 2 3 4 5 6 7 <?xml version="1.0" encodin

【Android进阶】关于ListView中item与控件抢夺焦点的那些事

在开发中,listview可以说是我们使用最频繁的控件之一了,但是关于listview的各种问题也是很多.当我们使用自定义布局的Listview的时候,如果在item的布局文件里面存在Button或者是CheckBox等控件以及其子类控件的时候,经常会碰到各种控件的点击事件冲突的情况,那么我们如何来处理Listview中这种控件之间焦点冲突的情况呢? 我们以item存在一个Button控件为例 首先,加入我们不设置任何关于焦点的属性,比如focus等,代码如下 @Override public

listview中item的各种进入乱入效果实现

今天给大家带来的,是使用开源项目ListviewAnimation(此项目在Github上已经停止维护),来实现listview控件中,item的各种进入效果,包括左侧进入,右侧进入,下侧进入,右下角进入,放大进入.卡片样式等效果. 废话不多说,先上效果图. 卡片效果 底部进入 右侧进入 左侧进入 右下角进入 放大进入 因为这个代码确实没什么讲头,也没什么难度,我直接上传代码,大家自己看吧 点击下载源码 listview中item的各种进入乱入效果实现