如何打造Androidios 自定义下拉列表的下拉列表框控件

二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&&&2. 下拉选择项。这边使用xml,当然也可以使用其他的方式,比如ArrayAdapter、自定义Adapter等。&[xhtml]&&&3. 主类[java]
&setDropDownViewResource&主要是设置&User&点击&Spinner&后出现的下拉菜单样式, android&亦提供两种基本的样式:&&android.R.layout.simple_spinner_item&:&TextView&的下拉菜单。&&android.R.layout.simple_spinner_dropdown_item&:除了有&TextView&,右边有&radio&的下拉菜单。&&&当然,用户也可以自定义这个样式摘自:这是静态的实现,另外动态和静态的实现链接:
阅读(2971)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'Android 之 下拉框(Spinner)的简单使用',
blogAbstract:'1.&工程的layout.xml文件如下:声明一个TextView控件和一个Spinner控件[java]&',
blogTag:'spinner',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:1,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}android 下拉框Spinner如何自定义效果如html中的select
[问题点数:40分]
android 下拉框Spinner如何自定义效果如html中的select
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区您所在的位置: &
4.8 自定义下拉菜单模式Spinner与setDropDownViewResource
4.8 自定义下拉菜单模式Spinner与setDropDownViewResource
人民邮电出版社
《Google Android SDK开发范例大全(第2版)》第4章讲述的是史上超豪华的手机控件。本节为大家介绍自定义下拉菜单模式Spinner与setDropDownViewResource。
4.8&自定义下拉菜单模式Spinner与setDropDownViewResource
Spinner就是下拉菜单,也等于swing的combo box、html的&select&,由于手机画面有限,要在有限的范围选择项目,下拉菜单是唯一、也是较好的选择。
Android提供的Spinner Widget的下拉菜单已经非常好用了,样式也还适用。但本范例的示范重点在于自定义下拉菜单里的样式,其关键在于调用setDropDownViewResource方法,以XML的方式定义下拉菜单要显示的模样。本范例除了自定义下拉菜单,还用程序设计了一段动画,当User以触控的方式单击这个自定义的Spinner时,会以一段动画提示User。
运行结果(见图4-8)
图4-8& 自定义Spinner的下拉菜单模式,请注意菜单具有圆角的效果范例程序src/irdc.ex04_08/EX04_08.java
在new ArrayAdapter中,我们将会使用ArrayAdapter(Context context, int textViewResourceId, T[] objects)这个Constructor,textViewResourceId使用Android提供的ResourceID,objects为必须传递的字符串数组(String Array)。
Adapter的setDropDownViewResource可以设置下拉菜单的显示方式,将该xml定义在res/layout目录下面,可针对下拉菜单中的TextView进行设置,如同本程序里的R.layout.myspinner_ dropdown即为自定义的下拉菜单TextView样式。除了改变下拉菜单样式外,也对Spinner做了一点动态效果,单击Spinner时,晃动Spinner再出现下拉菜单(myAnimation)。
/*&import程序略&*/ &&public&class&EX04_08&extends&Activity &{ &&&private&static&final&String[]&countriesStr&= &&&{&"北京市",&"上海市",&"天津市",&"重庆市"&}; &&&private&TextView&myTextV &&&private&Spinner&myS &&&private&ArrayAdapter& &&&Animation&myA &&&&/**&Called&when&the&activity&is&first&created.&*/ &&&@Override &&&public&void&onCreate(Bundle&savedInstanceState) &&&{ &&&&&super.onCreate(savedInstanceState); &&&&&/*加载main.xml&Layout&*/ &&&&&setContentView(R.layout.main); &&&&&&/*&以findViewById()取得对象&*/ &&&&&myTextView&=&(TextView)&findViewById(R.id.myTextView); &&&&&mySpinner&=&(Spinner)&findViewById(R.id.mySpinner); &&&&&&adapter&=&new&ArrayAdapter(this, &&&&&&&&&android.R.layout.simple_spinner_item,&countriesStr); &&&&&/*&myspinner_dropdown为自定义下拉菜单样式定义在res/layout目录下&*/ &&&&&adapter.setDropDownViewResource(R.layout.myspinner_dropdown); &&&&&&/*&将ArrayAdapter添加Spinner对象中&*/ &&&&&mySpinner.setAdapter(adapter); &&&&&&/*&将mySpinner添加OnItemSelectedListener&*/ &&&&&mySpinner.setOnItemSelectedListener &&&&&&(new&Spinner.OnItemSelectedListener() &&&&&{ &&&&&&&@Override &&&&&&&public&void&onItemSelected &&&&&&&&(AdapterView&arg0,&View&arg1,&int&arg2, &&&&&&&&&&&long&arg3) &&&&&&&{ &&&&&&&&&/*&将所选mySpinner的值带入myTextView中&*/ &&&&&&&&&myTextView.setText("选择的是"&+&countriesStr[arg2]); &&&&&&&&&/*&将mySpinner显示&*/ &&&&&&&&&arg0.setVisibility(View.VISIBLE); &&&&&&&} &&&&&&&&@Override &&&&&&&public&void&onNothingSelected(AdapterView&arg0) &&&&&&&{ &&&&&&&&&//&TODO&Auto-generated&method&stub &&&&&&&} &&&&&}); &&&&&&/*&取得Animation定义在res/anim目录下&*/ &&&&&myAnimation&=&AnimationUtils.loadAnimation(this,&R.anim.my_anim); &&&&&&/*&将mySpinner添加OnTouchListener&*/ &&&&&mySpinner.setOnTouchListener(new&Spinner.OnTouchListener() &&&&&{ &&&&&&&&@Override &&&&&&&public&boolean&onTouch(View&v,&MotionEvent&event) &&&&&&&{ &&&&&&&&&/*&将mySpinner运行Animation&*/ &&&&&&&&&v.startAnimation(myAnimation); &&&&&&&&&/*&将mySpinner隐藏&*/ &&&&&&&&&v.setVisibility(View.INVISIBLE); &&&&&&&&&return& &&&&&&&} &&&&&&}); &&&&&&mySpinner.setOnFocusChangeListener(new&Spinner.OnFocusChangeListener() &&&&&{ &&&&&&&@Override &&&&&&&public&void&onFocusChange(View&v,&boolean&hasFocus) &&&&&&&{ &&&&&&&&&//&TODO&Auto-generated&method&stub &&&&&&&} &&&&&}); &&&} &}&
res/layout/myspinner_dropdown.xml
改变下拉菜单样子的XML,里面所使用的组件为TextView。&version="1.0"&encoding="utf-8"&& &&&&xmlns:android="/apk/res/android"&&&android:id="@+id/text1, &&&android:layout_width="wrap_content, &&&android:layout_height="24sp, &&&android:singleLine="true"& &&&style="?android:attr/spinnerDropDownItemStyle"&&res/anim/my_anim.xml&
Android的动画(Animation)是由4种类型(Type)所组成:alpha、scale、translate以及rotate,以下的自定义动画将使用其中的两种。&version="1.0"&encoding="utf-8"&&&&xmlns:android="/apk/res/android"&&&& &&&&&android:fromXDelta="0"& &&&&&android:toXDelta="-100%p"& &&&&&android:duration="300"&&&&&&&&&& &&&&&android:fromAlpha="1.0"& &&&&&android:toAlpha="0.0"& &&&&&android:duration="300"&&&&&
Animation主要有两种动态方式,一种是tweened animation(渐变动画),另一种是frame by frame animation(画面转换动画)。tweened animation则有以下4种基本转换方式。
,AlphaAnimation (transparency changes):透明度转换。
,RotateAnimation (rotations):旋转转换。
,ScaleAnimation (growing or shrinking):缩放转换。
,TranslateAnimation (position changes):位置转换。
定义好你想要的动画XML后,用AnimationUtils.loadAnimation将动画加载,并试图在想要加上动态效果的组件中使用startAnimation方法。
【责任编辑: TEL:(010)】&&&&&&
关于&&&&的更多文章
日至17日,Google I/O 2013开发者大会在旧金山召开,
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
本书基于广泛应用的Protel 99 SE,系统介绍如何运用Pr
马克o桑布恩不仅带来了弗雷德的近况,更将追求卓越的
快乐的员工就一定能干吗?为什么满意度和绩效不一定相
本书提供了.NET框架下C#编程的详尽指南。书中详细介绍了.NET框架中的核心概念、使用GDI+编写高级用户界面、多线程程序设计、使
51CTO旗下网站}

我要回帖

更多关于 安卓自定义下拉列表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信