android自己编写超实用项目-对应解释viewpager使用_第1页
android自己编写超实用项目-对应解释viewpager使用_第2页
android自己编写超实用项目-对应解释viewpager使用_第3页
android自己编写超实用项目-对应解释viewpager使用_第4页
android自己编写超实用项目-对应解释viewpager使用_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论