版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共青科技职业学院《运输系统规划与设计》2023-2024学年第一学期期末试卷
- 《财经公务文书》课件
- 粮食安全课件
- 甘肃中医药大学《操作系统应用》2023-2024学年第一学期期末试卷
- 人事专员培训课件
- 七年级道德与法治上册第一单元成长的节拍第三课发现自己第一课时误区警示新人教版
- 三年级数学下册一两位数乘两位数第5课时用两步连乘计算解决实际问题教案苏教版
- 三年级科学下册第三单元固体和液体5使沉在水里的物体浮起来教案苏教版
- 九年级化学上册第六单元碳和碳的氧化物课题1金刚石石墨和C60第2课时单质碳的化学性质导学案新版新人教版
- 小学生请假制度
- 医务人员职业暴露预防及处理课件(完整版)
- DB11T 1470-2022 钢筋套筒灌浆连接技术规程
- 中考数学真题试题(含解析)
- 26个字母复习(专项训练)-2024-2025学年人教PEP版(2024)英语三年级上册
- 护士急诊科进修汇报
- 2025届上海市闵行区闵行中学数学高一上期末经典试题含解析
- 企业级员工心理健康辅导服务合同
- 2025年统编版中考语文课内文言文《湖心亭看雪》三年中考试题+模拟题(解析版)
- 2023年二轮复习解答题专题四:一次函数的应用图象型(原卷版+解析)
- 2024学年四川省成都天府新区九年级上学期一诊数学模拟试题(原卷版)
- 仓库劳务外包方案
评论
0/150
提交评论