最近有个需求就是需要给视频添加字幕,其实也挺简单的。字幕比较常用的格式是srt,实际它就是文本,把它解析出来,然后根据时间再展示就OK。...本文用的是系统VideoView,然后播放sd卡中的视频来作为演示(源码中带有f2.mp4和f2.srt,运行时拷贝到sd卡就行)。...)findViewById(R.id.srt);//项目中显示字幕的控件 mediacontroller_file_name= (TextView)findViewById(R.id.mediacontroller_file_name...= (ListView) findViewById(R.id.resolution_listview); resolution_switch.setOnClickListener(this); videoView.setOnTouchListener...tvSrt.setText(srtbean.getSrtBody()); //显示过的就删掉,提高查询效率 srtList.remove(i); break;//找到后就没必要继续遍历下去,节约资源 } } } } 运行效果图
优点 他可以通过设置LayoutManager来快速实现listview、gridview、瀑布流的效果,而且还可以设置横向和纵向显示,你想要控制Item间的间隔(可绘制),添加动画效果也非常简单(自带了...ItemAnimation,可以设置加载和移除时的动画,方便做出各种动态浏览的效果) 用法 1、导入 在Module的build.gradle的Dependencies中添加依赖(对应自己appcompat-v7...="wrap_content" /> 最后就是在Activity中,对这个RecyclerView设置属性和内容。...效果 ? 效果 我们在使用ListView的时候,一般都会使用分割线,只要在布局中说明就好了。相比ListView,RecyclerView添加分割线就有些复杂了。.../45059587 结尾 讲了半天,就展示了RecyclerView在ListView、GridView以及瀑布流效果的设置,还有横向和纵向的显示。
在Android平台上,listView 是特别常用的组件之一,我们在向用户展示列表数据时,通常要考虑: 列表有数据和无数据空的状态,因为网络环境各异,难免刷新失败什么的; 在此之前我是使用ViewStub...(android listview空布局刷新数据:列表无数据时显示数据加载失败的提示,并且点击提示,刷新数据); 我们来看一下ListView的继承关系, ListView extends AbsListView...= (ListView) findViewById(R.id.listview); textView = (TextView) findViewById(R.id.textView); listView.setEmptyView...(textView);//添加引用 adapter = new MyAdapter(); listView.setAdapter(adapter); textView.setOnClickListener...放同一个布局, 这个点我们看源代码实现方法也是让他们交换显示的参数,而不是添加或者删除组件视图.
ActionBar-ViewPager-Fragment 自定义一个带有ActionBar的主题:这样既可以获得ActionBar效果,又可以自己调整ActionBar的显示,如背景和字体等。...假设我们使用ListView显示一个下载应用的列表界面,在ListView的底部显示“加载更多”这样的按钮,那么就是让ListView同时显示2种类型的条目。 ...ListView的getView方法正是我们为ListView提供要显示条目的地方,为了便于为普通的条目对应的view对象添加更多的控制,可以定义ViewHolder来组合View,并负责它的创建和状态控制...上面的LoadMoreViewHolder显示了使用ViewHolder来管理每个列表条目对应的View是非常方便的,这样可以让ListView的每个条目的创建、状态修改的代码都集中在一个类中,如果不是使用...可以添加多种类型的显示条目,常见的有顶部的轮播图片,顶部下拉刷新,以及底部的加载更多等等。
首先我们创建一个空的Activity,在Activity对应的xml文件中添加ListView标签。下方就是所添加的内容。...数据显示 第三部要做的就是在ListView上显示上面数组中的值了。...每个Cell上显示一个元素,在Android开发中,为了在ListView中显示数据,引入了数据适配器的概念,这个数据适配其其实就是对应着iOS开发中的TableViewCell。...添加数据 6 listView.setAdapter(adapter); 经过上面这几步,你就可以创建并显示一个简单的ListView了,上面的Activity运行后,效果如下所示: ?...下方是我们要实现的效果,也就是我们写完代码运行后的一个效果,下方是某知名互联网金融公司其中一个理财App中“我的财富”模块中的一部分ListView。
前言 小伙伴们,在前面的文章中,我们谈到了Android开发中的自定义view的基本概念及方法等,本文我们实际举例自定义一个ListView。...二 ListView的缺点 ListView 在 Android 中是一个经典的列表控件,但也存在一些限制和缺点,包括: 性能问题:ListView 对于大量数据的展示可能存在性能问题,特别是当列表项变得复杂或包含大量视图元素时...缺乏内置的交互效果:ListView 没有内置的交互效果,如滑动删除、侧滑菜单等。如果需要添加这些常见的交互效果,需要编写自定义的触摸事件处理逻辑或使用第三方库。...例如,我们可以在布局中放置一个 TextView 来显示文本: <!...通过在 CustomAdapter 类中添加更多的逻辑和布局定义,您可以根据需求定制每个列表项的外观和功能。
功能列表 QMUIAnimationListView 使 ListView 支持添加/删除 Item 的动画,支持自定义动画效果。...QMUIBottomSheet 在 Dialog 的基础上重新定制了 show() 和 hide() 时的动画效果, 使 Dialog 在界面底部升起和降下。...修正了 TextView 默认情况下如果添加了 ClickableSpan 之后就无法把点击事件传递给 TextView 的 Parent 的问题。...成功、失败等类型可选。...QMUIBlockSpaceSpan 通过在段落之间设置该 span,实现段间距的效果。
先上效果图: (效果图中的数据皆来自Map) 扯点犊子: 其实Android对Java基础的要求并不高,虽然Android是基于Java的,但是Android有更多它自己的东西。...HashMap底层就是一个数组结构,数组中的每一项又是一个链表。...第二种方法没有排序,效果图二中是300、200、100,而数据源添加的顺序是100、200、300,但是显示的效果却是相反的,这是因为Entry是从前向后添加的,也就是最后添加的数据在数组的最前面。...= (ListView) findViewById(R.id.listView); } private void initData() { //添加数据...= (TextView) convertView.findViewById(R.id.item_gv_textView1); holder.item_gv_textView2
控件)来说,比如说ListView只能竖向滚动显示数据,不能横向滚动显示数据,在一些特殊的需求中,ListView就无能为力了。...="match_parent"> 在主布局文件中,我们添加了一个ListView控件,用于接下来的数据显示,之后我们要新建一个布局文件用于显示...否则就是只在父布局中声明,不添加进入父布局 * 这里我们当然不能加入父布局,因为我们的 View 是要加入 ListView 中作为子控件的 */...基本的步骤就完成了,让我们来看一下效果: ? ListView简单的用法就是这样了。...ok,和我们预想的一样 最后,这里只是RecyclerView控件的基本用法,RecyclerView控件的用法很多,我们可以自由的在控件里面加入分割线,子项减少和增加的动画效果等等,我们可以自由的定制属于我们的效果
> 2、主页面中Listview的样式 <ListView android:layout_marginTop="20px" android:layout_height...itemView.findViewById(R.id.itemImage); image.setImageResource(resId); return itemView; } 4、主程序中的使用...,把一系列数组传递进去 listView=(ListView)this.findViewById(R.id.MyListView); listView.setAdapter(new ListViewAdapterImageText...(this, titles,texts,resIds)); 5、效果 6、ListView的单击处理 import android.widget.AdapterView.OnItemClickListener...; import android.view.View; //添加点击 listView.setOnItemClickListener(new OnItemClickListener
本文给大家分享仿QQ空间页面顶部条随界面滑动背景透明度变化的效果,这个效果在其他应用程序中也很常见,技能+1。...可以看见,整个页面其实只有两个根元素,一个是ListView,一个是标题栏,前者可以上下滑动,给用户呈现内容;后者固定位置不动,类似于一个导航栏,左边一个返回键图标,中间一段文字,右边一个内容添加图标,...View内部拿到ListView的滚动事件; 2)在滚动事件里面拿到矩形头部的高度变化; 3)根据矩形头部的高度变化,设置顶部条的背景; 在其中,还涉及了几个方法,这里简单讲解一下,帮助读者理解,1)...,作用就是获得一个View的高度,在滚动事件里调用这个方法,就可以不断得到View的高度数据,以便于当做参数值传入setAlpha()方法中。 ②自定义View的XML布局文件 <?...小结:本节内容主要是实现了一个仿QQ空间顶部条随滚动事件发生而背景变化的效果,在应用程序中的使用率蛮高,还有一些其他的对于顶部条的处理,其实现方式其实都比较类似,比如下面这个“厨房故事”(2016年谷歌
在某些GUI工具包中,可以通过在程序代码中整体性地声明复合的View对象来避免这个问题。因为在访问这个组件时,无非就是调用getter方法或访问字段。...当然,在Android中也可以做到这一点,只不过代码会复杂繁琐一些。...在持有者模式中,Tag标签用来保存对象,而对象又用来保存要使用的子组件。在将持有者添加到视图后,只要用到了行,就可以轻而易举的访问其子组件,而不必再调用findViewById()方法了。...由于这显示的内容同ListView列表项内容不同,可以通过控制position来实现效果,但是非常繁琐,当然Android中提供了ListView的列表头和列表尾功能。...给ListView添加HeadView和FootView,当ListView滑动至列表第一项时使HeadView滑动出现,当ListView滑动至列表最后一项时使FootView滑动出现。
作为一个有一定项目开发经验的Android开发者来说,可能会遇到ListView的列表项中存在各种按钮的需求。 需求最多的就是购物车功能。...,ListView,列表项布局 做一个Demo,看下效果 (1)、效果一,点击商品添加删除数量,后面的商品总价随之变化 ?...(2)、效果二,一个列表项发生变化,滑出界面,在滑回来,该列表项的数据依然存在,列表项的复用不存在问题 ? 一、创建布局文件 1、主布局 1 <?...,会导致列表项无法点击,只能点击按钮,这种情况怎么解决 解决方法,在item列表项布局的最外层父容器中 设置一个属性: android:descendantFocusability...,这里是在Activity本身处理接口 //执行添加商品数量,减少商品数量的按钮点击事件接口回调 adapter.setOnAddNum(this); adapter.setOnSubNum
在使用ListView时,会遇到当ListView列表滑动到最底端时,添加新的列表项的问题,本文通过代码演示如何动态的添加新的列表项到ListView中。...SCROLL_STATE_TOUCH_SCROLL : 1 用户正在触摸滑动,手指仍在屏幕上 SCROLL_STATE_FLING : 2 用户之前触摸滑动,现在正在滑行,直到停止 下面通过代码给大家演示效果...footer.xml描述创建View 36 mFooter = getLayoutInflater().inflate(R.layout.footer, null); 37 // 在ListView...底部添加正在加载视图 38 //注意:addFooterView方法需要在调用setListAdapter方法前调用!...result = (TextView) convertView; 127 //动态创建TextView添加早ListView中 128 if (result
ListView01 自己思考后,画了2张图,原创的! 其实,在数据源中每一个object(包含各种Java类),在ListView中对应着每一个item(列表中的每一个横行) ?...ListView02 而Java类中的对应的变量,则可以一 一对应与item布局文件中的各个属性。 来,编代码,存在一个Data类,表示每一个Item包含的内容。..." android:padding="10dp"/> 这几个代码基本上也没变,我只是在工程目录下放置了一些图片,用于listview中显示,当然Data类与list_layout...中的控件是一一对应的,可以添加其它两边都可适配的各类控件及属性。...运行效果如下 ? 运行效果 文章太长容易让人看不下去,今天就到这里吧。
ListView是比较常用的控件之一,在这里总结一下,方便查阅。 程序效果是实现一个ListView,ListView里面有标题、内容和图片,并加入单击和长按响应。...步骤: 1.首先在activity_main.xml中定义一个ListView。 3.最后在MainActivity里面调用和加入Listener: package com.chay.listviewtest;import java.util.ArrayList...ID new int[] { R.id.ItemImage, R.id.ItemTitle, R.id.ItemText }); // 添加并且显示 list.setAdapter(listItemAdapter...); // 添加点击 list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick
在使用PopupWindow的时候,有一个不好的地方就是不太好设置弹出窗体的大小。如果指定绝对大小,那么对于不同分辨率不同尺寸的手机来说,显示出来效果会不同,从而导致用户体验不佳。...(LayoutParams.WRAP_CONTENT); 下面我就来具体讲解一下在PopupWindow中使用ListView的方法。...为了让PopupWindow能够自适应ListView的内容,需要在listview_demo.xml添加一项: <?xml version="1.0" encoding="utf-8"?...因为我在xml中加了一个TextView,然后设置了高度为0,这样他就看不到了。 最重要的步骤是我在TextView中设置了android:text="钓鱼岛是中国的",这一句是关键性的动作。...因为TextView才是自适配的砝码,要在text中写上你的listView中最长的那个字符。上述demo中,所有显示的文字{中国,加油,钓鱼岛是中国的,!!!}中”钓鱼岛是中国的“是最长的。
里面的每个好友就是由一个个 item 组成的,而每个item都存在Adapter适配器类中(负责数据处理),然后通过ListView显示出来. 2.ListView显示原理 ListView显示数据原理实际就是...示例效果如下所示: ?...等)的布局文件id //第三个参数 指向resource中要显示数据的一个textView控件id //第三个参数 要展示的数据数组 接下来,我们使用第二种构造方法来演示....效果如下: ? 5.1 写activity_main.xml 只是添加了一个ListView,内容和BaseAdapter的activity_main.xml一致 5.2 写item.xml <?...6.1 写activity_main.xml 只是添加了一个ListView,内容和BaseAdapter的activity_main.xml一致 6.2 写item.xml <?
Android ListView使用简介 ListView是Android软件开发中十分常用也十分重要的一个UI控件。...我们可以直接使用xml格式的布局(layout)文件来创建一个ListView,如果我们已经有一个布局(layout)文件,直接添加ListView控件。...当然,我们也可以直接用代码创建一个ListView控件,并把该控件作为要显示的View,或者添加到现有的一个groupview控件中去。...myListView = new ListView(this); setContentView(myListView); } 一般建议在布局(layout)文件中进行UI控件的定义。...显示效果还是与上面类似的鸟样: OK,上面介绍了四种ListView的Adapter来实现ListView的数据绑定,我们来做一个简单的比较。
领取专属 10元无门槛券
手把手带您无忧上云