前言 本章内容是android.widget.VideoView,版本为Android 3.1 r1,翻译来自"唐明",由"cnmahj"审核,再次感谢"唐明"!...VideoView 译者署名:唐明 审核:cnmahj 版本:Android 3.1 r1 结构 继承关系 public class VideoView extends SurfaceView implements... android.widget.VideoView 类概述 (图片转载至这里) 用于播放视频文件。 ...参数 keyCode 表示按下的键的、在 KEYCODE_ENTER 中定义的键盘代码 event KeyEvent 对象,定义了按钮动作 返回值 如果处理了事件,返回真。...如果measureSpec对象传入的模式是EXACTLY,那么返回的是measureSpec对象中的尺寸大小值。
今天的任务是 所以先来记录一下VideoView 经过一番操作之后,视频总算是放出来了 而且这个只是本地的视频,我播放网络的视频总是出现 然后报错 2020-10-15 10:07:12.914...at android.widget.VideoView.openVideo(VideoView.java:412) at android.widget.VideoView.access$2200...(VideoView.java:83) at android.widget.VideoView$7.surfaceCreated(VideoView.java:694)...起初播放本地视频也是如此,但后来发现是因为权限的原因,所以需要在AndroidManifest.xml中加入 android:name="android.permission.WRITE_EXTERNAL_STORAGE..." /> android:name="android.permission.READ_EXTERNAL_STORAGE" /> 然后还需要在Activity中动态申请权限
Android 利用自带VideoView控件播放视频 Activity public class Activity01 extends Activity { /** Called when...videoView = (VideoView) findViewById(R.id.VideoView01); Button PauseButton = (Button) this.findViewById...("/sdcard/test.mp4"); videoView.setVideoPath("android.resource://com.homer/"+R.raw.china); videoView.setMediaController...(new OnClickListener() { public void onClick(View arg0) { videoView.start(); } });...:text="@string/hello" /> VideoView android:id="@+id/VideoView01" android:layout_width
VideoView中遗留的问题 VideoView是直接继承SurfaceView VideoView中的openVideo可能会ANR VideoView中的release,stopPlayBack都会导致...上 解决办法 使用TextureView替换SurfaceView实现VideoView,因为TextureView是直接继承View的,并且在ListView中滑动的时候,也不会在滑动的时候,有残留(...而我们在ListView的每个卡片中,都有可能出现视频,而且需要自动播放,由于没有时间做视频先下载,再播放,所以选择的是Android自带的流播放。会一段一段的将视频先读到缓冲区,再播放。...在Android中,直接可以用HandlerThread,因为这样可以尽可能的让资源的消耗达到最少,HandlerThread在没有新事件到来的时候,都是处于wait状态,直到有新事件的到来,才会被notify...但是这样会导致一个问题,就是Android维护的MediaPlayer的状态机中的状态可能会乱,这时候就会抛出IllegalStateException,目前对于这种异常,我们选择了捕获它。
//android播放视频。.../调用时: //Intent intent = new Intent(MainActivity.this, PlayVideo.class); //从mainActivity跳转到playvideo中...; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import...android.widget.MediaController; import android.widget.VideoView; public class PlayVideo extends Activity...videoView = (VideoView) findViewById(R.id.VideoView01); videoView.setVideoPath("android.resource:/
android.view.ViewGroup android.widget.FrameLayout android.widget.ScrollView...比较复杂的工作是在getChildMeasureSpec中完成的。...比较复杂的工作是在getChildMeasureSpec中完成的。.../ScrollView2 添加自动滚动和智能焦点切换 [Android学习指南]使用ScrollView实现滚动效果 Android中ScrollView与ListView共用问题的解决方案 示例代码... 下载:Demo_ScrollView.rar 七、译者其他译文 android 中文 api (64) —— Scroller
Android支持播放网络上的视频。在播放网络上的视频时,牵涉到视频流的传输,往往有两种协议,一种是HTTP,一种是RTSP。...Android中自带的播放器,以及VideoView等都支持上述两种协 议,因此,可以直接播放网络上的视频,唯一不同的就是URI。...Android当前支持两种协议来传输视频流一种是Http协议,另一种是RTSP协议 Http 协议最常用于视频下载等,但是目前还不支持边传输边播放的实时流媒体 同时,在使用Http协议 传输视频时,需要根据不同的网络方式来选择合适的编码方式...使用RTSP时,流媒体的格式需要是RTP。 RTSP和RTP是结合使用的,RTP单独在Android中式无法使用的。 RTSP和RTP就是为实时流媒体设计的,支持边传输边播放。...根据实际情况来使用前面介绍的两种方式,都可以播放网络上的视频,唯一不 同的就是URI 本例中使用VideoView来播放网络上的视频 ?
前言 小伙伴们,在上文中我们介绍了Android视图组件WebView,本文我们继续盘点,介绍一下视图控件的VideoView。...一 VideoView基本介绍 videoView是Android平台上用于播放视频的控件,它提供了一些常见属性和方法来控制视频的播放。...二 VideoView使用方法 在布局文件中添加VideoView: VideoView android:id="@+id/videoview" android:layout_width...四 VideoView简单Demo 准备视频文件: 在项目的res目录下创建raw文件夹,并将要播放的视频文件(例如video.mp4)放入该文件夹中。...在布局文件中添加VideoView: VideoView android:id="@+id/videoView" android:layout_width="match_parent"
效果图: 有两个相同吸顶的View viewA在ScrollView中 viewB与ScrollView同级 根据ScrollView滑动距离判断同级的viewB 是否显示 当滑动的距离大于viewA...到顶部的距离,viewB就显示,反之隐藏 xml代码 的距离 点击到顶部: mScrollView.scrollTo(0, mTopView.getHeight()); 带滑动监听的ScrollView package com.yechaoa.stickscrollview...; import android.content.Context; import android.util.AttributeSet; import android.widget.ScrollView...* Describe : 带滑动监听的scrollview */ public class MyScrollView extends ScrollView { public interface
刚听到这个需求的时候,觉得这个很简单,直接设置ScrollView的初始滚动值即可。然而,当真正实现的时候却发现,Android压根没有方法可以设置ScrollView的初始滚动值。...但是为难的是如何做到初始化ScrollView的默认滚动值。如果在onCreate里面调用scrollTo是无效的,因为这时候ScrollView都没有布局好。...当我看着上面动画的代码发呆的时候,突然注意到了scrollY这个值,为什么Animator能够通过这个值来调整ScrollView的滚动位置呢?...难道是通过反射scrollY这个成员变量动态修改它的value? 于是自己动手在onCreate的时候通过反射修改ScrollView的scollY属性。...通过断点和查看源码确认,这个保存ScrollView当前滚动位置的scrollY属性全名叫做mScrollY,而这个mScrollY并不是ScrollView的成员,而是其父类View的属性成员。
现在去运行程序,是滑动不了, 看不到按钮3的。 ? 应该如何设置呢?...1.改变这个布局文件的根布局:把根布局改成:ScrollView 注意:ScrollView的子元素只能有一个,所以得增加一个LinearLayout布局,把其他按键放在这个LinearLayout中,...那么ScrollViewd的子元素就只有一个LinearLayout了,而LinearLayout的子元素不限制。...> ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent...所以在HorizontalScrollView布局中再加一个子布局LinearLayout,且LinearLayout为水平方向: ? 代码如下: <?
ScrollView中只能放一个控件,一般都放LinearLayout,orientation属性值为vertical。在LinearLayout中放需要呈现的内容。...但是为啥在scrollview中嵌套listview会出现只显示第一条listitem的高度呢,原因是:scrollview的ontach方法的滚动事件消费处理,ListView控件的高度设定问题 从谷歌那里找到的...ScrollView嵌套ListView只显示一行的解决办法相信很多人都遇到过,然后大部分都是用这位博主的办法解决的吧 刚开始我也是用这个办法解决的,首先感谢这位哥的大私奉献,贴上地址 http:/...; } 这个代码让控件去计算Listview自己的高度然后设置这个Listview的高度 但是这个代码里面有一个问题,就是这个当你的ListView里面有多行的TextView...方法,我们就可以测量字体的总宽度除与去掉边距的屏幕的大小,就可以算出文字要几行来显示,然后测量字体的高度*行数可以得到字体的总高度,然后在加上上下边距就是TextView真正的高度,然后setMeasuredDimension
SwiftUI 中的一个基本组件是 ScrollView,它允许用户通过滚动导航内容。然而,管理滚动位置和理解滚动交互可能是一个挑战。...在此示例中,我们使用 CGFloat 来跟踪内容偏移的 Y 轴。转换闭包:从 ScrollGeometry 实例中提取所需信息。...完整代码示例分析下面是一个完整的 SwiftUI Demo,其中包含了我们刚刚讨论的 ScrollView、ScrollGeometry 和 onScrollGeometryChange 的使用示例。...你可以在 Xcode 中运行这个项目来观察其效果。...总结今天,我们探讨了 SwiftUI 中的新 ScrollGeometry 类型和 onScrollGeometryChange 视图修饰符。
这篇文章主要介绍ListView,GridView,ScrollView的常用属性和基本用法,并利用ListView实现一个关于微信的界面。...简单的说显示一个ListView的前提有:ListView布局、ListView中的item布局和Adapter,最后通过setAdapter将视图和数据绑定。...ScrollView 滚动视图也是很常见的视图,当一个屏幕中内容很多时,我们可以通过滚动来查看所有内容。...因为我在布局文件中已经自定义了标题栏,所以需要把系统自带的标题栏隐藏。... 定义完还需在AndroidManifest.xml中的application标签中引用: android:theme
1,xml中RecyclerView添加android:nestedScrollingEnabled="false"属性 android.support.v7.widget.RecyclerView...android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height...="wrap_content" android:nestedScrollingEnabled="false"/> 或 2,代码设置 mRecyclerView.setNestedScrollingEnabled
3.布局文件中添加VideoView组件 4.创建个String类型对象保存uri 5.调用VideoView的setVideoURI方法设置URI,参数为上面的uri 6.调用start()方法播放。...代码如下: 布局文件中添加: VideoView android:id="@+id/video" android:layout_width="match_parent...我们需要在布局文件中的VideoView组件外包裹一个布局,我这里用的是RelativeLayout,,其他的应该也可以: <RelativeLayout android:layout_width...="match_parent" android:layout_height="match_parent" > VideoView android...中播放,就可以在她的标签中添加screenOrientation属性控制屏幕方向(landscape是横向,portrait是纵向): <activity android:name
在Android开发中有时我们需要在scrollview中嵌套webview这时你会发现这两者的滑动事件产生了冲突导致:webview很难被滑动,即使被滑动了一点也非常不顺畅。...解决方案也比较简单只需要在webview的ontouch事件中调用requestDisallowInterceptTouchEvent(true)即可。
碰巧发现了这篇博客 Android ListView滚动条配置完全解析,详细介绍了ScrollView这个组件的相关配置,非常清楚。我利用ScrollView实现了所需要的目标。...="0dp" android:text="雪场简介: 玉华宫滑雪场位于陕西西铜川风光秀丽的玉华宫风景名胜区内,西。...="0dp" android:text="雪场简介: 玉华宫滑雪场位于陕西西铜川风光秀丽的玉华宫风景名胜区内,西。... ScrollView> 需要注意: HorizontalScrollView代表的是横向滚动条 ScrollView...代表纵向滚动条 滚动条的样式那篇博客已经给出代码,可以去查看
orientation="vertical" tools:context=".MainActivity"> ScrollView android:id="@+id/scrollView...android:attr/textAppearanceLarge" /> ScrollView> MainActivity.java...可滚动时,则将事件交给EditText处理,即进行滚动 否则将事件交由其父类处理,即交给ScrollView进行滚动 ---- 具体实现方案 复写EditText的onTouch()并 采用 requestDisallowInterceptTouchEvent...(true)进行触碰事件拦截 关于为什么可以拦截事件,可以看看我写的事件分发机制:Android事件分发机制 详解攻略,您值得拥有 public class MainActivity extends...接下来我将继续介绍 Android开发中的相关知识,感兴趣的同学可以继续关注本人博客Carson_Ho的开发笔记 请帮顶 / 点赞!因为你的鼓励是我写作的最大动力!
点击置顶ScrollView ? 这个置顶是滑动的置顶,不包括外层布局。 好了,效果图看到了,你有没有动力开始写代码呢?...增加了网络权限和http访问许可 在app的build.gradle中添加相关的依赖 先增加DataBind的使用 dataBinding { enabled = true }...// l oldl 分别代表水平位移 // t oldt 代表当前左上角距离Scrollview顶点的距离 @Override protected void onScrollChanged...@Override public void onClick(View view) { //滑动到ScrollView的顶点 this.smoothScrollTo...滑动超过屏幕高度则显示置顶按钮,不设置的话就会使用自定义View中的默认高度 DisplayMetrics metric = new DisplayMetrics();//获取屏幕高度