自定义下拉菜单模式(An-Beer工作室)
- 格式:doc
- 大小:47.00 KB
- 文档页数:6
在WORD中制作下拉菜单
我们大家都知道,在EXCEL中制作下拉菜单很简单,设置一下数据有效性就可以,在WORD 中大家可能很少用到,并且设置起来也比较麻烦,其实说简单也简单,插入一个下拉窗体域就可以了,下面我们就一步步的详细说明一下它的制作过程。
首先需要调出窗体工具,视图-工具栏-窗体。
如下图:
窗体调出来后,选择下拉型窗体域,左边第三个按扭,出现如下图窗体。
双击单元格中的窗体域底纹,弹出“下拉型窗体域选项”对话框。
在“下拉项”文本框内输入需要添加的第一个列表项,并单击“添加”按钮进行添加。
依法输入其余列表项,待所有列表项添加完毕后,可以通过“↑、↓”方向按钮改变列表项的排列顺序。
同时勾选“启用下拉列表”复选框,单击“确定”按钮,完成一个单元格的下拉型窗体域的设置。
如图:
把所有下拉型窗体域的下拉菜单内容输入完成之后,单击“窗体”工具栏上的锁状“保护窗体”按钮(这样除了含有窗体域的单元格外,表格的其它地方都无法进行修改),在需要录入同一内容的任一窗体域单元格上单击鼠标,单击其右侧出现的下拉三角图标,从弹出下拉列表中选择需要录入的内容。
全部选择好后,再次单击“保护窗体”按钮解除锁定。
即大功告成。
Android自定义下拉刷新动画--仿百度外卖下拉刷新动画我们先来看看Android中的动画吧:Android中的动画分为三种:Tween动画,这一类的动画提供了旋转、平移、缩放等效果。
Alpha –淡入淡出Scale –缩放效果Roate –旋转效果Translate –平移效果Frame动画(帧动画),这一类动画可以创建一个Drawable序列,按照指定时间间歇一个一个显示出来。
Property动画(属性动画),Android3.0之后引入出来的属性动画,它更改的是对象的实际属性。
分析我们可以看到百度外卖的下拉刷新的头是一个骑车的快递员在路上疾行,分析一下我们得到下面的动画:背景图片的平移动画太阳的自旋转动画两个小轮子的自旋转动画这就很简单了,接下来我们去百度外面的图片资源文件里找到这几张图片:(下载百度外卖的apk直接解压即可)<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/iv_back1"android:src="@drawable/pull_back"android:layout_width="match_parent"android:layout_height="100dp" /><ImageViewandroid:id="@+id/iv_back2"android:src="@drawable/pull_back"android:layout_width="match_parent"android:layout_height="100dp" /><RelativeLayoutandroid:id="@+id/main"android:layout_centerHorizontal="true"android:layout_width="wrap_content"android:layout_height="wrap_content"><ImageViewandroid:layout_marginTop="45dp"android:id="@+id/iv_rider"android:background="@drawable/pull_rider"android:layout_width="50dp"android:layout_height="50dp" /><ImageViewandroid:id="@+id/wheel1"android:layout_marginLeft="10dp"android:layout_marginTop="90dp"android:background="@drawable/pull_wheel"android:layout_width="15dp"android:layout_height="15dp" /><ImageViewandroid:id="@+id/wheel2"android:layout_marginLeft="40dp"android:layout_marginTop="90dp"android:background="@drawable/pull_wheel"android:layout_width="15dp"android:layout_height="15dp" /></RelativeLayout><ImageViewandroid:id="@+id/ivsun"android:layout_marginTop="20dp"android:layout_toRightOf="@+id/main"android:background="@drawable/pull_sun"android:layout_width="30dp"android:layout_height="30dp" /></RelativeLayout>接下来我们定义动画效果:背景图片的平移效果:实现两个animation xml文件,一个起始位置在100%,结束位置在0%,设置repeat属性为循环往复。
ViewFlipper的使用2010-08-11 15:31屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。
通过查看OPhone API文档可以发现,有个android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。
该类有如下几个和动画相关的函数:l setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参数,类型为Context和int,分别为Context对象和定义Animation的resourceID。
∙setOutAnimation: 设置View退出屏幕时候使用的动画,参数setInAnimation函数一样。
∙showNext:调用该函数来显示FrameLayout里面的下一个View。
∙showPrevious:调用该函数来显示FrameLayout里面的上一个View。
一般不直接使用ViewAnimator而是使用它的两个子类ViewFlipper和ViewSwitcher。
ViewFlipper可以用来指定FrameLayout内多个View之间的切换效果,可以一次指定也可以每次切换的时候都指定单独的效果。
该类额外提供了如下几个函数:∙isFlipping:用来判断View切换是否正在进行∙setFilpInterval:设置View之间切换的时间间隔∙startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行∙stopFlipping: 停止View切换ViewSwitcher 顾名思义Switcher特指在两个View之间切换。
用Dreamweaver怎么做下拉导航菜单具体步骤:1.按Ctrl+Alt+T插入一个两行三列的表格(图1.3.30):图1.3.30【Table】对话框的设置2.选中表格,在属性面板中设置表格的背景颜色,如图1.3.31所示。
图1.3.31 在属性面板(Propertyes)中设置表格的背景颜色3.光标定位到第一行第一列的单元格里,然后在属性面板中设置该单元格的颜色为"#CCCCCC"、水平对齐方式为"center"(居中),如图1.3.32所示:图1.3.32 在属性面板中设置单元格的背景颜色和水平对齐方式4.同理设置第一行第二、三列的单元格的背景颜色(分别为"#3399FF"和"#FFCC33")和对齐方式(居中),并在单元格里写上文字完成后如图1.3.33所示:图1.3.33在单元格中写上文字后的效果(Dreamweaver中)5.光标定位到第二行第一个单元格里,单击【插入】【布局对象】【ap div】插入层(图1.3.34)。
图1.3.34 在菜单中插入层6.选中该层,然后在属性面板中设置层的宽为"100px",高为"150px",背景颜色为"#CCCCCC"(跟第一行第一列的单元格背景颜色一致),如图1.3.35所示:图1.3.35 在属性面板中设置层的尺寸和背景颜色7.光标定位到层内,按Ctrl+Alt+T插入一个五行一列的表格(图1.3.36):图1.3.36在属性面板中设置所插入表格的属性8.同理在大表格的第二行第二、三列插入层,分别设置层的宽、高、背景颜色并在层中插入表格,完成后如图1.3.37所示:图1.3.37插入所有作为下拉菜单的层后的效果界面部分到这里就完成了,现在开始给层和单元格加上动作10.光标定位到第一行第一列的单元格后,按【窗口】【行为】打开行为面板,单击上面的【+】号按钮,在下拉菜单里选择【显示-隐藏元素】行为,在弹出的【显示-隐藏元素】对话框中作如图1.3.38设置(选中"元素"的第一项,再单击下面的【显示】按钮)。
Android开发——使用Gallery实现“多级联动”2010-08-07 09:14 by HalZhang, 578 visits, 网摘, 收藏, 编辑本文将讲解利用两个Gallery实现类似多级联动的功能。
先看图:,一个Gallery是歌曲专辑图片,另一个Gallery是专辑的歌曲。
滑动专辑Gallery,下面的歌曲也会随之发生变动。
一、布局。
主要的布局是有两个相对布局+两个Gallery组成的:1:<?xml version="1.0"encoding="utf-8"?>2:<RelativeLayout xmlns:android="/apk/res/android"3:android:layout_width="fill_parent"4:android:layout_height="fill_parent">5:<!-- 专辑 -->6:<Gallery android:id="@+id/gallery"7:android:layout_width="fill_parent"8:android:layout_height="wrap_content"9:android:layout_alignParentTop="true"10:android:gravity="center_horizontal"11:android:spacing="16dp"12:android:unselectedAlpha="0.5"/>13:<!-- 歌曲 -->14:<Gallery android:id="@+id/gallery2"15:android:background="#FFF"16:android:layout_width="fill_parent"17:android:layout_height="30dp"18:android:layout_below="@id/gallery"19:android:layout_alignParentLeft="true"20:android:gravity="center_vertical"21:android:spacing="16dp"22:android:unselectedAlpha="0.5"/>23:</RelativeLayout>二、Gallery的适配器在android中适配器很好的实现了MVC思想,它很好的为某些组件提供了数据和view的实现。
浮动搜索框的使用其实并不难,而是在于它的配置非常之繁琐,对于它的使用主要是方便开发者对于程序中有搜索业务时,更好的设计UISearchM anager具体使用步骤如下:(1)配置s earc h bar的相关信息,新建一个位于res/xml下的一个s earchable.xml的配置文件,如默认值、是否有搜索建议或者语音搜索。
代码<searchable xmlns:android=/apk/ res/android<!-- label为搜索框上方的文本,hint搜索框里面的提示文本,显示label -->android:label="@string/search_label"android:hint="@string/search_hint"android:searchMode="showSearchLabelAsBadge"<!-- 语音搜索配置 -->android:voiceSearchMode="showVoiceSearchButton|launchR ecognizer"android:voiceLanguageModel="free_form"android:voicePromptText="@string/search_invoke"<!-- 配置搜索建议,配置错误将不会显示,这里的searchSuggestAut hority的值必须是继承自SearchRecentSuggestionsProvider的完整路径名-->android:searchSuggestAuthority="com.android.cbin.Sea rchSuggestionSampleProvider"android:searchSuggestSelection=" ? "/>(2) manifest.xml配置,搜索结果处理的Ac tivity将出现两种情况,一种是从其他Ac tivity中的s earc h bar打开一个A ctivtiy 专门处理搜索结果,第二种是就在当前Ac tivity就是处理结果的Ac tivity,先介绍第一种配置:代码<activity android:name="SearchResultActivity"><intent-filter><action android:name="android.intent.action.SEA RCH"></action></intent-filter><!-- 指定上面的searchable.xml文件 --><meta-data android:resource="@xml/searchable"android:name="android.app.searchable"></me ta-data></activity><!-- 为了使每一个Activity都能使用search bar,一定要将这个标签放到启动Activity中,里面的value指定的是前面的搜索结果Activity--><meta-data android:name="android.app.default_searchable" android:value=".SearchResultActivity" />(3)搜索建议在manifest.xml中相关的配置<!--之前searchable.xml中有一个searchSuggestAuthority的值其实和这里的authorities指向的都是name中所关联的SearchSuggestionSamplePr ovider,他是一个SearchRecentSuggestionsProvider的子类--><provider android:name="SearchSuggestionSampleProvider"android:authorities="com.android.cbin.SearchSuggestionS ampleProvider"></provider>上面authorities指向的都是name中所关联的Searc hSuggestionSampleP rovider,他是一个SearchRecentSuggestionsProvider的子类代码public class SearchSuggestionSampleProvider extendsSearchRecentSuggestionsProvider {final static String AUTHORITY="com.android.cbin.Search SuggestionSampleProvider";final static int MODE=DATABASE_MODE_QUERIES;public SearchSuggestionSampleProvider(){super();setupSuggestions(AUTHORITY, MODE);}}(4)为了能够使用s earc h bar 我们必须重写Ac tivity的onSearc hRequested的方法,在界面上启动一个s earch bar但是这个动作不会自动触发,必须通过一个按钮或者菜单的点击事件触发;代码@Overridepublic boolean onSearchRequested(){String text=etdata.getText().toString();Bundle bundle=new Bundle();bundle.putString("data", text);//打开浮动搜索框(第一个参数默认添加到搜索框的值)//bundle为传递的数据startSearch("mm", false, bundle, false);//这个地方一定要返回真如果只是super.onSearchRequested 方法不但//onSearchRequested(搜索框默认值)无法添加到搜索框中,bu ndle也无法传递出去return true;}(5)接收query和bundle、保存query值(即搜索建议的列表值)代码public void doSearchQuery(){final Intent intent = getIntent();//获得搜索框里值String query=intent.getStringExtra(SearchManager.QU ERY);tvquery.setText(query);//保存搜索记录SearchRecentSuggestions suggestions=new SearchRecentSuggestions(this,SearchSuggestionSampleProvider.AUTHORITY, Se archSuggestionSampleProvider.MODE);suggestions.saveRecentQuery(query, null);if(Intent.ACTION_SEARCH.equals(intent.getAction())) {//获取传递的数据Bundle bundled=intent.getBundleExtra(SearchMana ger.APP_DATA);if(bundled!=null){String ttdata=bundled.getString("data");tvdata.setText(ttdata);}else{tvdata.setText("no data");}}}之前说到了处理结果的Ac tivity将可能出现的两种情况的两种,现在就处理第二种状况,就是假如invoke search bar的Activity同时也是处理搜索结果的Ac tivity,如果按照之前的方式处理则会出现一种情况,搜索一次就实例化一次Ac tivity,当按返回键的时候会发现老是同一个A ctivity,其实为了使它只有一个实例化对象,只需简单的配置和代码就能实现第一:在处理搜索结果Ac tivity的manif es t.xml中添加android:launc hMode="s ingleTop"属性第二:重写Ac tivity的onN ew I ntent(I ntent intent)代码@Overridepublic void onNewIntent(Intent intent){super.onNewIntent(intent);//获得搜索框里值String query=intent.getStringExtra(SearchManager.QU ERY);tvquery.setText(query);//保存搜索记录SearchRecentSuggestions suggestions=new SearchRecen tSuggestions(this,SearchSuggestionSampleProvider.AUTHORITY, Se archSuggestionSampleProvider.MODE);suggestions.saveRecentQuery(query, null);if(Intent.ACTION_SEARCH.equals(intent.getAction())) {//获取传递的数据Bundle bundled=intent.getBundleExtra(SearchMana ger.APP_DATA);if(bundled!=null){String ttdata=bundled.getString("data");tvdata.setText(ttdata);}else{tvdata.setText("no data");}}}相关知识:上面讲到了将最近的搜索值添加到搜索建议中,但却没有提到如果清理搜索建议中的值,与保存相似,Searc hRecentSugg es tion对象提供了一个c learHis tory()方法代码private void clearSearchHistory() {SearchRecentSuggestions suggestions = new SearchRec entSuggestions(this,SearchSuggestionSampleProvider.AUTHORITY, Se archSuggestionSampleProvider.MODE);suggestions.clearHistory();}忘了上效果图:oye。
实例一:<ul id="nav"><li><a href="/">传智播客</a><ul><li><a href="#">java学院</a> </li><li><a href="#">.net学院</a></li><li><a href="#">php学院</a></li></a></li><div class="clear"></div></ul></li></ul>css代码#nav {width:660px;height:33px;font-size:12px;list-style:none;z-index: 10;position:relative;margin:0 auto;background:#3F3;}#left_pic{width:8px;height:33px;display:block;float:left;background:#999;}#right_pic{width:8px;height:33px;display:block;float:right;background:#999;} #nav li{width:60px;float:left;text-align:center;line-height:30px;margin-left:1 0px;}#nav li ul {display:none;list-style:none;z-index:1000;}#nav li:hover ul {display:block;background:#606;/*这里放你下拉的背景图片*/width:100px;height:auto;z-index:300;}.clear {clear:both}#nav li.over ul {display:block; background:#36F;width:100px;height:auto;}a:link {color: #FFF;text-decoration: none;}a:visited {text-decoration: none;color: #FFF;}a:hover {text-decoration: underline;}a:active {text-decoration: none;}下拉效果图如下:实例二<ul id="nav"><li>传智播客网页设计学院<ul id="box1"><li>网页设计</li><li>平面设计</li><li>UI设计</li><li>flash广告设计</li></ul></li></ul>JS代码<script type="text/javascript">function change(id,mode){document.getElementById(id).style.display=mode;}</script>css代码#nav{width:440px;height:24px;background:#ccc;margin:100px auto 0;}#navli{width:150px;height:24px;line-height:24px;float:left;margin-right :10px;background:yellow;text-align:center;cursor:pointer;position:relative;_display:inline;}#nav li ul{position:absolute;top:24px;left:0;display:none;} #nav li:hover ul{display:block;}下拉效果图如下所示:本文来源于传智播客网页平面设计学院官方论坛:/forum-60-1.html?zly如果您对上面的内容有问题,可以联系我们!。
下拉菜单全攻略之Dreamweaver篇下拉菜单是网上最常见到的效果之一,用鼠标轻轻一点或是移过去,就出现一个更加详细的菜单,它不仅节省了网页排版上的空间、使网页布局简洁有序,而且一个新颖美观的下拉菜单,更是为您的网页增色不少。
制作下拉菜单的方法多种多样,本期专栏将为您介绍四种常用的制作方法,让您随心打造自己的下拉菜单。
■ 用Dreamweaver制作下拉菜单Dreamweaver是制作下拉菜单最常用的工具,方法简单,控制自由,可以最大限度地随心打造菜单样式,是制作下拄菜单的必修课。
用Dreamweaver制作下拉菜单的原理很简单,它利用了Behaviors(行为)面板中的内置方法Show-Hide Layers(隐藏-显示层)方法,并用onMouseOver(鼠标移至)和onMouseOut (鼠标移开)来触发层的隐藏和显示,而将要出现的菜单就在层中。
因此,我们可以分四步来制作下拉菜单,首先我们需要一个导航条,它用来放置首先出现在浏览者眼前的主菜单;然后再制作开始隐藏着而将会出现的下拉选单;接着,进行最关键的一步,为主菜单和下拉选单添加上隐藏和显示层的效果;最后,我们进行菜单的美化修饰。
最终看到的效果如图,您也可以访问以下地址:menu.htm相信你已经等不急了,那就让我们马上开始吧!一、导航条的制作首先进行一些必要的前期工作,按CTRL+J,打开Page Properties(页面属性)窗口,参数设置如图二,这一设置对菜单的位置将有影响,所以请如图设置。
按CTRL+F2打开Objects面板,点击层按钮后在页面中按住鼠标不放拖出一个层,然后在层的Properties(属性)面板中设置各参数,Layer ID框填入title,L、T、W、H框分别填入8、15、480、15,背景色填入#006699,如图。
将光标移至层内,点击Objects面板上的表格按钮,插入一个一行四列的表格,设置如图。
按住CTRL键不放点取表格的四个单元格,然后设置它们的宽度为120,并在前两个单元格中输入文字,就是你的主菜单名,可按自己想要的名字输入,我用"经典论坛"和"天极网"为例,并加上链接。
WPS表格如何使用有效性制作下拉菜单(文档可以直接使用,也可根据实际需要修改使用,可编辑欢迎下载)WPS表格如何使用有效性制作下拉菜单发布于2021-07-17, 14:50:19 | 点击数:66 | WPS技术支持组在使用WPS表格的过程中,经常需要录入大量的数据。
如果每个数据都通过键盘来输入,不仅浪费时间还浪费精力。
利用WPS表格的数据有效性功能,可以快速、准确地输入数据。
例如教师希望按学生的考试成绩划分为四个等级:优秀、良好、合格、不合格,输入过程中会重复的输入这几个等级,如果把几个等级名称集合到一个下拉菜单中进行选择,那会大大简化操作,并节约时间。
在WPS 表格中新增加了“数据有效性”功能,通过以下两种方法都可以实现这一需求:方法一:通过手动输入数据源的方式制做下拉菜单;方法二:通过引用数据区域的方式制做下拉菜单。
直接输入法步骤1:选择“等级”列中的所有单元格,选择“数据|有效性”菜单项,打开“数据有效性”对话框,在“设置”选项卡下,按“允许”右侧的下拉按钮,在列表中选择“序列”选项,如图1所示:图1 数据有效性区域的选择步骤2:在“来源”方框中输入序列的各等级名称(如:优秀,良好,合格,不合格等),各等级之间以半角逗号进行分隔,选上“忽略空值”和“提供下拉菜单”两个复选框,如图2所示。
图2 有效性数据的输入步骤3:,最后单击“确定”按钮,回到工作表中,点击“等级”列的任何一个单元格,都会在右边显示一个下拉箭头,点击它就会出现下拉列菜单,如图3所示。
图3 下拉菜单的选择选择其中的一个选项,相应的等级名称就输入到单元格中了,显得非常方便,而且输入准确不易出错。
当鼠标单击其它任一单元格时,这个单元格的下拉箭头就消失,不影响操作界面。
区域引用法步骤1:首先在$D$1:$D$4区域中分别输入优秀,良好,合格,不合格.如图4所示:图4 下拉菜单数据的输入步骤2:选择“等级”列中的所有单元格,选择“数据|有效性”菜单项,在对话框的“设置”选项卡下,在“允许”列表中选择“序列”选项,点击“来源”编辑栏,使用鼠标选中序列区域D1:D4,回到“数据有效性”对话框。
怎样用Dreamweaver制作导航栏下拉菜单在一些企业或门户网站的导航栏中,经常会看到下拉菜单,这样会使用户操作方便一些。
其实,用Dreamweaver软件就可以制作下拉菜单,只需要点几下就出来了。
而且良好地兼容IE、FF浏览器。
以下是具体制作步骤:一、打开Dreamweaver,点击文件-新建菜单,创建一个HTML 文件,输入网站导航栏文字,并选中输入的文字,在下面的属性栏链接处加一个空链接:#。
然后保存该网页文件。
二、点击窗口-行为菜单,打开行为面板。
三、选中第一步输入的文字,点行为面板上的+号,在弹出的菜单中选-显示弹出式菜单。
四、在弹出的对话框中勾选Don’t show me this message again(不要再次向我提示此信息),再点继续。
五、在下列对话框分别设置内容、外观、高级、位置选项。
在内容选项中,点+号可以添加菜单项,-号可以删除菜单项,缩进项可以自动生成二级菜单。
六、各项都设置好后,按F12,在浏览器中预览网页效果如下:此时你会发现和网页同级的目录多了两个文件,分别是:arrows.gif、mm_menu.js。
请勿修改、移动位置,这是弹出式菜单必须的图片、JS文件。
如需修改下拉菜单,可以选中文字,点击行为面板的显示弹出式菜单即可。
如果下拉菜单下面有Flash,为了不影响下拉菜单的正常效果和层次,需要给Flash添加透明代码:<param name="WMODE" value="transparent"> ,还需在embed标签中加入代码:wmode="transparent",。
自定义下拉菜单模式
范例说明
Spinner就是下拉菜单,也等于swing的combo box、html的<select>,由于手机画面有限,要在有限的范围选择项目,下拉菜单是唯一、也是较好的选择。
Android提供的Spinner Widget的下拉菜单已经非常好用了,样式也还适用。
但本范例的示范重点在于自定义下拉菜单里的样式,其关键在于调用setDropDownViewResource方法,以XML的方式定义下拉菜单要显示的模样。
本范例除了自定义下拉菜单,还用程序设计了一段动画,当User以触控的方式单击这个自定义的Spinner时,会以一段动画提示User。
在new ArrayAdapter中,我们将会使用ArrayAdapter(Context context, int textViewResourceId, T[] objects)这个Constructor,textViewResourceId使用Android提供的ResourceID,objects为必须传递的字符串数组(String Array)。
范例程序
Adapter的setDropDownViewResource可以设置下拉菜单的显示方式,将该xml定义在res/layout目录下面,可针对下拉菜单中的TextView进行设置,如同本程序里的yout.myspinner_ dropdown即为自定义的下拉菜单TextView样式。
除了改变下拉菜单样式外,也对Spinner做了一点动态效果,单击Spinner时,晃动Spinner再出现下拉菜单(myAnimation)。
/* import程序略 */
public class EX04_08 extends Activity
{
private static final String[] countriesStr =
{ "北京市", "上海市", "天津市", "重庆市" };
private TextView myTextView;
private Spinner mySpinner;
private ArrayAdapter<String> adapter;
Animation myAnimation;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
/*加载main.xml Layout */
setContentView(yout.main);
/* 以findViewById()取得对象 */
myTextView = (TextView) findViewById(R.id.myTextView);
mySpinner = (Spinner) findViewById(R.id.mySpinner);
adapter = new ArrayAdapter<String>(this,
yout.simple_spinner_item, countriesStr);
/* myspinner_dropdown为自定义下拉菜单样式定义在res/layout目录下*/
adapter.setDropDownViewResource(yout.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 false;
});
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。
<?xml version="1.0" encoding="utf-8"?>
<TextView
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,以下的自定义动画将使用其中的两种。
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="/apk/res/androi d">
<translate
android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="300"
>
</translate>
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="300">
</alpha>
</set>
扩展学习
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方法。