顾乔芝士网

持续更新的前后端开发技术栈

想要深入学习Android性能优化?看完这篇直接让你一步到位

Android绘制流程

Android绘制流程

来源:极客头条
MFC、WTL、DuiLib、QT、Skia、OpenGL。 Android里面的画图分为2D和3D两种: 2D是由Skia 来实现的,3D部分是由OpenGL实现的。

对用户来说, 窗口就是手机屏幕, 包括下面的那些home、back按键、状态栏等。对于Activity来说, 窗口就是除系统状态栏和系统按键的屏幕区域, 有window之类的概念。对于wms来说, 它没有什么窗口的概念, 它能接受的只是一个个view而已。也就是Activity这里还有Window这个概念, 但在wms那里, 已经没有window的概念了。 窗口类型分为应用程序窗口: 就是一般应用程序的窗口, 比如我们应用程序的Activity的窗口。子窗口: 一般在Activity里面的窗口, 比如TabActivity。系统窗口: 系统的窗口, 比如输入法、Toast、墙纸等等…系统窗口不需要对应任何Activity, 也不需要有父窗口, 对于应用程序而言, 理论上是无法创建系统窗口的, 因为所有的应用程序都没有这个权限, 然而系统进程却可以创建系统窗口。

挖穿Android第四十一天

1 播放视频

[1]surfaceView 可以来展示视频播放的内容

[2]sufaceView控件是一个重量级控件 初始化需要一点时间,可以直接在子线程更新ui ,内部维护2个线程,

A ---- 负责加载数据 B----加载数据

B ---- 负责显示 A----负责显示 男女搭配干活不累

[3]实现代码

private MediaPlayer mediaPlayer;

达内安卓培训专家:Android应用开发必备

在Google I/O 2014上,Google公布了Android L Preview版本,此版本的UI有了非常大的改变,很炫很给力!

同时,Google也给出了两个可以向下兼容的控件放到了V7包中,分别是RecyclerView和C ardView,这篇文章达内安卓培训(android.tedu.cn)专家就说一下怎么使用CardView。

CardView的包在哪?

虽然说CardView整合到了V7中,但是在support-v7中并不能发现,通过查看sdk extra路径下的文件可以发现,其名字叫cardview-v7。这个路径下就有cardview相关的东西了,包括已经打包好的aar包。

Android开发之自建通用Adapter-彻底实现视图和数

在安卓开发里Adapter(适配器)的分量不小,从图中就能看到他是listview和数据集的分离,能把获取数据和显示数据分离开,实现解耦。前面的文章有讲Adapter,但是是侧重AndroidAnnotations的框架的简单demo,在这篇里要把之前的Adapter进行优化,减少重复代码,简洁程序,提高健壮性和可维护性。

做法主要是提取2个基类,把共通的工作放到基类里做,数据类型用泛型规范。

1、MyBaseAdapter.java

Adapter的基类,继承BaseAdapter,在实际开发中,由于界面要求很多样化所以一般都用最基础的BaseAdapter,它的自定义性更高。数据集在Adapter基类里定义好,类型是泛型的集合。拥有get和set方法,set方法里重新加数据后要做notifyDataSetChanged通知。getView方法里做了优化,convertView实例为空时才去实例化,当然实例化要通过抽象方法交给子类去实现。这就是最基本的框架,比较通用。

iOS的布局体系-流式布局MyFlowLayout

iOS布局体系的概览

在我的CSDN博客中的几篇文章分别介绍MyLayout布局体系中的视图从一个方向依次排列的线性布局(MyLinearLayout)、视图层叠且停靠于父布局视图某个位置的框架布局(MyFrameLayout)、视图之间通过约束和依赖实现布局的相对布局(MyRelativeLayout)、以及多列多行排列的表格布局(MyTableLayout)、以及本文将要介绍的流式布局(MyFlowLayout)这5种布局体系。这些视图布局的方式都有一些统一的特征,都要求必须将子视图放入到一个特殊的视图中去,我们称这些特殊的视图为布局视图(Layout View)。这些布局视图都有一个共同的基类:基础布局视图(MyBaseLayout)。同时我们还为视图建立了很多扩展的属性来进行位置和尺寸的设置,以及我们还专门建立了服务某些布局视图的视图扩展属性。在这些扩展属性中:用于定位视图位置的类是MyLayoutPos类,这个类可以用来决定视图的上、下、左、右、水平居中、垂直居中六个方位的具体值;而用于决定视图尺寸的类是MyLayoutDime类,这个类可以用来决定视图的高度和宽度的具体值;用于决定视图排列布局方向的是枚举MyLayoutViewOrientation类型,方位类型定义了垂直和水平两个方位;用于决定视图停靠区域的MyMarginGravity枚举类型,枚举类型定义了14种停靠的区域类型,这里要分清楚的是MyMarginGravity和MyLayoutPos的区别,前者是用来描述某个具体的方位,而后者则是用来某个方位的具体位置;用于描述子视图和布局视图四周内边距的padding属性,这个属性只用于布局视图;用于描述布局视图的尺寸大小由子视图整体包裹的wrapContentWidth,wrapContentHeight的属性;用于描述苹果各种屏幕尺寸适配的MySizeClass定义,以及具体的实现类MyLayoutSizeClass类。这些属性和类共同构建了出了一套完整的iOS界面布局系统。下面是这个套界面布局体系的类结构图:

Android开发中你的标题栏够逼格吗?如何才能够逼格呢?

【威哥说】如果任何一款产品的推广,不只是运营的主要工作,而是更加注重用户体验,及时网站内容不丰富,只要有一个功能显得小有逼格,就会给人完全不一样的感觉。下面大家就一起看看,如果做一个有逼格的标题栏。

【正文】Toolbar这个控件是在 Android 5.0 推出的一个 Material Design 风格的导航控件 ,Google 推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的 Actionbar 。与 Actionbar 相比,Toolbar 明显要灵活的多。它不像 Actionbar 一样,一定要固定在Activity的顶部,而是可以放到界面的任意位置。除此之外,在设计 Toolbar 的时候,Google也留给了开发者很多可定制修改的余地,这些可定制修改的属性在API文档中都有详细介绍,如:

技术分享 | 想做App测试就一定要了解的App结构


本文节选自霍格沃兹测试开发学社内部教材


HarmonyOS学习路之开发篇—Java UI框架(六大布局开发)

一、布局介绍

Android的布局开发中存在五大布局,在鸿蒙布局开发中也存在与之相似的五种布局类型,唯一多余的一个类型叫做自适应盒子布局,布局可以在不同设备上有不同的展示方式。
熟悉Android开发的小伙伴可以参照Android的布局开发来学习。

如何使用Android自定义复合视图

在最近的一个客户应用中,我遇到了一个需求,根据选定的值来生成指定数量的编辑框字段,这样用户可以输入人物信息。最初我的想法是把这些逻辑放到Fragment中,只是根据选中值的变化来向线性布局容器中增加编辑框数量,但是那样做会使Fragment过度膨胀,而且没有太多可重用性方面的考虑。

这是一个绝好的机会,可以将这些交互功能封装到自定义视图中。自定义视图可以在整个应用范围重用(目前为止至少有2个地方),并且让测试封装功能变得我更加轻松。

什么是自定义视图

<< 1 2 3 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言