版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称: ger的使2、知识3、具体内、器(了解SurfaceView因为支持自动刷新的功能,因此一般用在器的显示界面,以及头的界面中完成器时,同样要使用MediaPlayer来加载文件,注意,必须保证文件是可以识别的格式。时,就需要在界面中加入一个SurfaceView来显示。android:label=android:label="@string/app_name"PortraitPortrait表示竖屏,landscape完成界面,需要使用RelativeLayout相对布局,来层叠显示组件 android:layout_height="match_parent">android:layout_height="match_parent"/>android:visibility="invisible"> android:textSize="16sp"android:layout_height="wrap_content"/>android:visibility="invisible">android:layout_weight="3"/>android:background="@drawable/ic_player_prev_default"android:layout_weight="1"/>android:background="@drawable/ic_player_play_default"android:layout_weight="1"/>android:background="@drawable/ic_player_next_default"android:layout_weight="3"/> publicclassMainActivityextendsActivityprivateMediaPlayerprivateStringfilePath=privateSurfaceViewprivateSeekBarprivateButton inearLayout inearLayoutprivateTextViewprivateHandlerprivateThreadprivatebooleanflag=protectedvoidonCreate(BundlesavedInstanceState){surface=(SurfaceView)findViewById(R.id.surface);seekbar=(SeekBar)findViewById(R.id.seekbar);playBtn=(Button)findViewById(R.id.play_btn);topBar=(LinearLayout)findViewById(R.id.top_bar);bottomBar=(LinearLayout)findViewById(R.id.bottom_bar);mainText=(TextView)findViewById(R.id.main_text);handler=newHandler(){publicvoidhandleMessage(Messagemsg){}surface.getHolder().addCallback(newCallback(){publicvoidsurfaceDestroyed(SurfaceHolderholder)}publicvoidsurfaceCreated(SurfaceHolderholder)//当 的SurfaceView界面被创建时,再建立 player=newtry{//对显示的组件进行初始循 }catch(Exceptione){}}publicvoidsurfaceChanged(SurfaceHolderholder,intintwidth,intheight)}mainText.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv)//System.out.println("点击 ////取得上下两部分内容,并设置显示或隐if(topBar.getVisibility()==View.INVISIBLE)//变成显示}else}}加入按钮的playBtn.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv)if(player.isPlaying()){}else}}//加入一个多线程,通过子线程控制拖动条以及显示时间的t=newThread(){publicvoidrun()while(flag)try{//取得当前 时间位置,设置到拖动条if(player.isPlaying())传递一个空消息,不需要有具体的消息内容,因为消息通道}}catch(Exceptione){}}}加入拖动条OnSeekBarChangeListener(){publicvoidonStopTrackingTouch(SeekBarseekBar)//开始 ,同时要倒到当前拖动条的位置修改按钮}publicvoidonStartTrackingTouch(SeekBarseekBar)暂}publicvoidonProgressChanged(SeekBarseekBar,intbooleanfromUser)}}protectedvoidonDestroy()if(player!=null)tryif(player.isPlaying()){}}catch(Exceptione){}}if(t!=null){flag=false;try{}catch(Exceptione){}}}}}TextSwitcher和ImageSwitcher分别是用来完成文本信息和的切换功能的。android:layout_height="match_parent"publicpublicclassMainActivityextendsActivityprivateTextSwitcherprivateString[]allText"getAccessibleStateSetpublic"Component.AccessibleAWT","Component中的getAccessibleStateSet状态集合的AccessibleStateSetAccessibleState"//当前显示的页数索privateintnowIndex=//定义按下的位置坐标privatefloatstartX; ongstartTime;protectedvoidonCreate(BundlesavedInstanceState)//设置所使用的布局//取得switcher组switcher=(TextSwitcher)//设置一个建立TextViewswitcher.setFactory(newViewFactory(){publicViewmakeView()建立显示文本的TextViewtext=newTextView(MainActivity.this);text.setLayoutParams(newLayoutParams(return}//可以设置切换时的动画效//进入的动画,先使用系统提供的动画效//离开的动////必须先加入一个OnClicListenerswitcher.setOnClickListener(newOnClickListener()publicvoidonClick(Viewv)}//加入一个触 ,主要用 手势操switcher.setOnTouchListener(newOnTouchListener(){publicbooleanonTouch(Viewv,MotionEventevent) 用户当前的操//主要的操作类型有以下三if(event.getAction()==MotionEvent.ACTION_DOWN)按到屏幕//记录当前按下的位置横坐标,并记录当前按下的startX=startTime=}elseif(event.getAction()==MotionEvent.ACTION_MOVE){手指在屏幕上移}elseif(event.getAction()==MotionEvent.ACTION_UP){手指从屏幕上抬//取得当前的时间和位置,进行判//是否在0.5内完成动if(System.currentTimeMillis()-startTime<{判断移动距离至少偏移50像if(event.getX()-startX>=50)上一if(nowIndex>0){//测试发现系统动画不好用,因此要自行定义画效//建立一个动画处理AnimationinAnim=-Globals.SCREEN_WIDTH-10,0,//设置动画持续时间AnimationoutAnim=Globals.SCREEN_WIDTH+10,0,设置动画持续时重新设置文}}elseif(startX-event.getX()>=50)下一if(nowIndex<allText.length-1){//建立一个动画处理AnimationinAnim=Globals.SCREEN_WIDTH+10,0,0,//设置动画持续时间AnimationoutAnim=-Globals.SCREEN_WIDTH-10,0,//设置动画持续时间重新设置文}}}}return}}} 切换器,效果相同,区别就是里面使用的是ImageView,通 、 ger组件(重点使用ANdroid的扩展支持包,可以加入Vie publicclassMainActivityextendsActivityprivate ger 一个 的privateMyPagerAdapter ist<View>allViews=newprotectedvoidonCreate(BundlesavedInstanceState)//设置所使用的布局pager= ger)//设置最大显示的页数限制,不设置会提示错误adapter=new}}publicclassMyPagerAdapterextendspublicclassMyPagerAdapterextendsPagerAdapterist<View>publicMyPagerAdapter(List<View>allViews)this.allViews=}publicvoiddestroyItem(ViewGroupcontainer,intposition,Objectobject){//将组件从显示容器中删}publicObjectinstantiateItem(ViewGroupcontainer,position)//将组件从集合中取得,并加入到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木工机械日常点检表
- 贵州省湄潭县湄江中学2025届高三第四次模拟考试语文试题试卷含解析
- 阜新市重点中学2025年第二学期期末学生学业质量监测高三语文试题含解析
- 福建省龙岩一中2025届高考语文试题查漏补缺题含解析
- 福建省德化一中、永安一中、漳平一中2024-2025学年高三4月一模语文试题含解析
- 二年级数学计算题专项练习1000题汇编集锦
- 北京市西城区41中2025届招生全国统一考试仿真卷(二)-高考语文试题仿真试题含解析
- 北京2025年高考最后冲刺模拟(一)语文试题含解析
- 临夏地区无偿献血中脂肪血的产生因素及预防措施-国际临床研究杂志
- 第十二单元化学与生活(讲义)中考化学一轮复习(人教版)
- 2024湖南邵阳大圳灌区管理局和所属事业单位招聘历年(高频重点提升专题训练)共500题附带答案详解
- 饲料有限公司双体系资料之安全风险分级管控清单
- 航天精神宣讲课件
- GB/T 9799-2024金属及其他无机覆盖层钢铁上经过处理的锌电镀层
- 出生缺陷(遗传代谢病)救助回执单
- 发票增量合同范本
- 员工工资发放说明范文
- 非金属材料耐腐蚀性能表
- DL-T5190.1-2022电力建设施工技术规范第1部分:土建结构工程
- 中国制度环境大作业4
- 2024江苏太仓市城市建设投资集团限公司招聘公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
评论
0/150
提交评论