故在此总结整理安卓开发中比较常见的一些问题,技巧和指南。 1.开发环境 Android Studio是谷歌基于IntelliJ IDEA社区版开发的,面向安卓开发的免费集成开发环境。...DISTRIBUTION表示如果支持该安卓版本以上设备,则预估能支持安卓设备占所有安卓设备的百分比。...3.3.5 回收型列表视图RecyclerView的使用 RecyclerView是基于viewholder的回收理念在ListView上的一个升级版,功能强大,当然在不需要进行回收的场景就当然不要用了...RecyclerView的适用场景是有大量用于展示的列表数据的场景,比如微信的公众号页面的推文卡片、微信朋友圈、QQ的好友列表、小红书的瀑布流帖子等。...和ListView类似,要将数据适配到视图上进行展示需要使用适配器Adapter,不同的是RecyclerView的BaseAdapter已经将viewholder模式封装好了,而目前RecyclerView
二十五、AndroidStudio 中应用更改的使用指南 二十六、安卓事件处理概述及示例 二十七、安卓触控和多点触控事件处理 二十八、使用安卓手势检测器类检测常见手势 二十九、在安卓上实现自定义手势识别...四十六、使用浮动动作按钮和 Snackbar 四十七、使用表格布局组件创建选项卡式界面 四十八、使用回收视图和卡片视图小部件 四十九、安卓回收视图和卡片视图教程 五十、布局编辑器的示例数据教程 五十一...七十四、安卓系统中的运行时权限请求 七十五、使用MediaPlayer和MediaRecorder录制安卓音频并播放 七十六、在 AndroidStudio 使用谷歌地图安卓 API 七十七、使用安卓打印框架来打印...五十二、使用浮动动作按钮和 Snackbar 五十三、使用表格布局组件创建选项卡式界面 五十四、使用回收视图和卡片视图小部件 五十五、安卓回收视图和卡片视图教程 五十六、布局编辑器示例数据教程 五十七、...七十九、安卓画中画模式 八十、安卓画中画教程 八十一、安卓系统中的运行时权限请求 八十二、使用MediaPlayer和MediaRecorder录制安卓音频并播放 八十三、使用安卓打印框架来打印 八十四
数据分离 前面的文章提到过,在实际业务中不太可能把数据绑定在模板里,这样模板会很臃肿,我们要做的是,用模板描述页面结构和数据源,而非数据本身,因此需要将数据剥离出来。 运行效果: ?...数据mock自玩安卓(看着有点乱,后续有时间搭个小服务,向业务贴近), ? 重点看页面结构即可,远程模板调整了Card顺序、4列布局改成5列、改了文本颜色和瀑布流item背景色。...进行数据准备, 模板地址:net_shopping_home.json 聚合数据接口:tangram/shopping/home 瀑布流数据接口:玩安卓 - article/list/0/json 模板如下...template) throws JSONException { //遍历每一个卡片(布局),把数据填充进字段items for (int i = 0; i < template.length...MyApp.gson.toJson(list.get(i))); obj.put("type", card.optStringParam("itemType")); //由于使用了玩安卓的数据结构
4.1 高性能 在性能方面,希望 贴近Native开发,重点:页面渲染效率 & 组件回收复用 页面渲染:为了提升渲染效率,Tangram将在视图渲染之前把大量的计算工作在VM中完成,并缓存在VM...对于Tangram,他的页面概念模型可用 树状模型(3层结构) 表示: ? 下面主要讲解 三层结构中 的 卡片 & 组件。 b....组件 定义:最小单位的UI元素 日常使用的普通的View,如按钮、图片等等 作用:负责UI元素展示 & 业务逻辑 组成元素:视图模型(ViewModel) & 样式(Style) 视图模型:所有组件对有一个统一视图模型...具体使用 上述讲解的 只是Tangram概念模型基本架构 & 原理 在具体实现时 会根据 不同平台 采用 不同实现 方案: 对于Android:采用基于RecyclerView+自定义LayoutManager...下面我将继续对 阿里开源的框架模型Tangram进行 跟踪 & 详细分析 ,有兴趣可以继续关注Carson_Ho的安卓开发笔记 ---- 请帮顶或评论点赞!因为你的鼓励是我写作的最大动力!
谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常用的新控件有下面5种。 ? 1....CardView(卡片视图) CardView顾名思义是卡片视图,它继承FrameLayout。它是一个带圆角的背景和阴影FrameLayout。...CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为容器使用。...RecyclerView(循环视图) RecyclerView是ListView的替代品,谷歌推荐使用RecyclerView替代ListView。...,Patelle,CardView是在单独的支持包里面,不在appcompat-v7及其依赖子包中 要使用它们,必须导入它们的依赖包 compile 'com.android.support:recyclerview-v7
“哥哥我做不到啊…..啊…..呸”,做为一名有节操的程序猿,自然是不能说出这么没有出息的话,哥就满足你们,于是,出了个可自定义动效的卡片切换视图,效果如下所示 ?...思路 首先,要展示出卡片层叠的视觉效果。在这里,我们通过方块的缩放大小差异以及在Y方向上的位置差异,来展现这种视觉效果。 其次,要能够方便的定义卡片视图内容。...我们通过都很熟悉的设置Adapter的方式来构建内容视图。 最后,要能够自定义动效。...总览 我们给出三种基本的动画模式 /* * ANIM_TYPE_FRONT:被选中的卡片通过自定义动效移至第一,其他的卡片通过通用动效补位 * ANIM_TYPE_SWITCH:选中的卡片和第一张卡片互换位置...) = 当前位置的缩放尺寸 //(0.1f * fraction * positionCount) = 移动过程中需要改变的缩放尺寸 float scale = (0.8f - 0.1f * fromPosition
//tangram底层支持:vlayout implementation 'com.alibaba.android:vlayout:1.2.36@aar' //tangram虚拟视图...(更灵活的视图,后面单独开篇讲) implementation('com.alibaba.android:virtualview:1.4.6@aar') { transitive...() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) {...super.onScrolled(recyclerView, dx, dy); //在 scroll 事件中触发 engine 的 onScroll,内部会触发需要异步加载的卡片去提前加载数据...90c6cc12-742e-4c9f-b318-b912f163b8d0.png", "type": "SingleImageView" } ] } 图片取自玩安卓的
响应式导航 在平板电脑这类宽屏幕设备或者横屏手机上,用户们通常握持着设备的两侧,于是用户的拇指更容易触及侧边附近的区域。同时,由于有了额外的横向空间,导航元素从底部移至侧边也显得更加自然。...在程序运行过程中,我们可以通过 Kotlin 的安全调用操作符 (?.) 来根据当前的设备配置确定呈现给用户哪一个视图。...△ 平板横屏时的搜索应用栏 (窄模式) △ 平板竖屏时的搜索应用栏 (宽模式) 此前,我们通过在搜索 Fragment 的视图层次中的应用栏部分使用 标签,并提供两种不同版本的布局来实现此功能...在宽尺寸屏幕上,这些列表项会转换为一格一格的卡片,卡片上直接显示了详细的内容。 △ 左图: 窄屏幕显示 Codelabs。右图: 宽屏幕显示 Codelabs。...这些独立的网格卡片是定义在 res/layout-w840dp 下的 备用布局,数据绑定处理信息如何与视图绑定,以及卡片如何响应点击,所以除了不同样式下的差异之外,不需要实现太多内容。
本文会介绍上面每种模式,并解释如何将这些模式应用到您的应用中。我将会通过在示例应用 Reply (一个简单易用的邮件客户端) 中实现对应的效果来说明每个步骤。...例如示例的一个列表展开成为了详情页、FAB 变形为工具栏,或 chip 扩展为了浮动的 卡片。...第一个是单个邮件列表项的卡片,我们将使用 数据绑定,来确保每一个列表项都有唯一的过渡名称。...,这个组件可以设置一个静态的过渡名称,因为在视图层级中只有这一个视图。...RecyclerView 上设置 android:transitionGroup="true" 的需求同样适用于这里,但是我们已经在共享轴配置的步骤中解决了这个问题。
,如此我们就可以直接自定义一个动画过程中,具体的视图展示方式。...组件总览 由于卡片视图需要根据动画情况进行渲染,所以显然是一个StatefulWidget。...同时,我们给出三种基本的动画模式: enum AnimType { TO_FRONT,//被选中的卡片通过自定义动效移至第一,其他的卡片通过通用动效补位 SWITCH,//选中的卡片和第一张卡片互换位置...我们来看看在切换动画的过程中,是如何返回卡片Widget列表的。.../整体宽度 int fromPosition,//卡片开始位置 int toPosition);//卡片要移动到的位置 该方法返回的是一个Transform,专门用于处理视图变换的Widget,
现在来介绍两种控件RecyclerView和CardView,并通过实例将它们结合在一起实现一种横向卡片式滑动效果. 1.RecyclerView RecyvlerView是android SDK 新增加的一种控件...2.CardView CardView是安卓5.0推出的一种卡片式控件,内部封装了许多有用的方法来实现美观效果。...3.如何使用RecylerView和CardView在android studio中 在build.gradle中添加依赖再编辑即可 compile 'com.android.support:recyclerview-v7...我们会发现使用了CardView控件以及在控件中添加简易的两个TextView 现在来介绍CardView的一些常用属性,这也是现在卡片效果的关键所在 card_view:contentPadding...中来实现RecyclerView 跟ListView的一样,我们需要写一个适配器,代码如下: public class recyclerViewadapter extends RecyclerView.Adapter
RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。...是复用的,在RecyclerView中,是把ViewHolder作为缓存的单位了,然后convertView作为ViewHolder的成员变量保持在ViewHolder中,也就是说,假设手机屏幕可显示10...注意的是:RecyclerView不提供ListView中的setOnItemClickListener方法,我们可以在ViewHolder中添加类似的点击事件。...所以它的性能比以前应该好了不少。 LayoutManager:这个LayoutManager类决定视图被放在画面中哪个位置,但这只是它的众多职责之一。它可以管理滚动和循环利用。...CardView属性 CardView中常用的属性有: cardElevation:设置阴影的大小 cardBackgroundColor:卡片布局的背景颜色 cardCornerRadius:卡片布局的圆角的大小
消息卡片内容视图工厂类 ContentFactory 会根据消息类型注册对应的 ContentConfig 进行一个缓存 消息卡片配置类 ContentConfig 是根据消息类型从工厂类中获取的,返回当前消息卡片的宽高...(size)、消息体 message、当前渲染的消息卡片视图 消息模型 layout ,根据不同的消息类型生成,会保存当前的消息体以及消息卡片的宽高,为了提升性能,缓存在 TableAdapter 数据源操作类中...消息卡片cell,根据后端下发不同的卡片类型,从消息卡片配置类中获取不同的 contentView 加到 cell 中,进行消息卡片的展示 消息卡片 contentView,负责消息卡片 UI 布局、.../ RecyclerView 的重用机制,拿 iOS 来举例,用 weex 的 url 和 TableView 的 identifier 做一个绑定,这样不必自己去维护 weex 卡片的重用和回收。...缓存起来 在消息卡片视图工厂类 contentFactory 中,将消息类型传到 JS 端来判断当前消息类型是否需要注册成 weex 卡片 在获取卡片宽高、消息模型的卡片内容配置类 contentConfig
安卓编程初学者手册中文第三版 零、前言 一、初学安卓和 Java 二、第一次接触:Java、XML 和 UI 设计师 三、探索 AndroidStudio 和项目结构 四、布局和材质设计入门 五、卡片视图和滚动视图的漂亮布局...安卓编程初学者手册 零、前言 一、安卓和 Kotlin 入门 二、Kotlin、XML 和用户界面设计器 三、探索 AndroidStudio 和项目结构 四、布局和材质设计入门 五、卡片视图和滚动视图的漂亮布局...精通 Kotlin 安卓开发 零、前言 一、从安卓开始 二、构建和运行 三、屏幕 四、连接屏幕流 五、外观和体验 六、权限 七、使用数据库 八、安卓偏好设置 九、安卓系统中的并发 十、安卓服务 十一、...四、把你的树莓派变成媒体中心 五、使用 Pi 的未接来电 六、汽车中的树莓派 安卓游戏开发手册 零、前言 一、安卓游戏开发 二、不同安卓平台介绍 三、不同的安卓开发工具 四、安卓开发风格和行业标准...三、了解安卓设备上的数据存储 四、从安卓设备中逻辑提取数据 五、从安卓设备中物理提取数据 六、从安卓设备恢复删除的数据 七、安卓应用的取证分析 八、安卓取证工具概述 精通 Android Studio3
表格视图: 看板视图(无封面): 看板视图(有封面): 甘特视图: 画册视图: 日历视图: 其中看板视图和画册视图是以卡片的形式来展现,非常适合做一些运营活动和项目管理。...看板视图可以根据单选列作为分组依据,进行卡片的一个聚合分组展示,而且卡片的高度是不固定的,只有当前列有内容才会展示出来。...画册视图虽然也是卡片,但没有分组,卡片高度始终固定,所以不会被排版计算的问题困扰。 3. 为什么会慢?...比如页面上的卡片,应该按照什么样的规则来计算呢? 最初我们是从头计算完一个分组所有卡片,再去计算下一个分组的,但是一个分组可能有很多的卡片,可能会影响了后面卡片的计算。...总结 在大型文档中,可能很小的一个功能就会出现性能瓶颈,类似的地方还有搜索替换,也是会造成卡顿的地方,一样需要走异步分片计算。
Leangoo企业版新增「时间线视图」,通过「时间线视图」你可以在项目管理中非常直观的了解每个人的工作分配及各个任务的排期,方便及时调整计划,确保项目顺利推进。...2、点击列表栏区域操作列中的 “箭头” ,可以快速定位到此任务所在的时间区域。...字段配置 1、通过 “表格字段配置” 选择列表栏可以展示的字段,可以更清晰的了解任务详情 2、卡片类型筛选区会默认勾选此看板的默认卡片类型,通过勾选卡片类型,可自由选择展示在时间线视图中的任务,帮助你更清晰的识别不同类型的任务...管理任务 1、列表栏支持对任务的拖拽自由排序。鼠标按住操作区空白处,上下拖动即可排序。 2、点击列表栏操作区中的 “+” ,可以快速添加任务。...将鼠标移至任务的时间条上,可以看到时间条上前置点和后置点,按住后置点,拖拽到另外一个任务的前置点,即可设置任务间的依赖关系。
页面数据结构中最重要的是“Cards”数组,数组中的每一项数据则描述了每张卡片需要的具体数据,这些数据可以通过“Card_type”属性标识它所需要的卡片类型。...微博已经在iOS、安卓、H5上都实现了这100多种卡片,同一个Json数据源可以在三端得到一致的功能页面。...渲染引擎层:小程序页面使用浏览器进行渲染,iOS使用的是系统的WKWebview,在安卓上使用的是基于Chrome定制的Yttrium 内核; 容器层:在小程序容器层实现了小程序生命周期的管理、小程序包管理以及保活机制等...由于Service层 JS引擎没有浏览器Document对象而不能处理这些指令,需要转发给上层浏览器中的JS引擎。 Service JS引擎如何将指令传递到上层呢?...iOS要通过找到浏览器为特定控件或特定样式预留的坑,然后嵌入原生控件来实现。而安卓体系较复杂,需要通过定制浏览器内核来实现,这里就不在做扩展说明。
都掌握的怎么样啊 安卓中一些常用控件学习得差不多了,今天再来学习一个新的控件CardView,在实际开发中也有非常高的地位。...app:cardBackgroundColor:设置卡片的背景色。 app:cardCornerRadius:设置卡片的圆角大小。 app:contentPadding:设置内容的padding。...这里有一点需要值得注意,之前学习到的控件属性都是android:开头的,而这里所列的属性是app:开头的,如果继续使用默认的会提示找不见对应属性,需要我们定义一个app命名空间,在布局文件中需要加入xmlns...三、CardView示例2 CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为一种容器使用。...接下来简单定义一个CardView的item项,并在Java代码中修改CardView的属性,关于结合ListView和RecyclerView的部分比较简单,这里不做过多介绍。
二、高效调试 三、构建布局 四、内存 五、多线程操作 六、建立网络 七、安全 八、优化电池消耗 九、安卓系统中的原生编程 十、性能提示 安卓 NDK 秘籍 零、前言 一、你好,NDK 二、Java 原生接口...一、安卓安全模式——概览 二、应用构建模块 三、权限 四、定义应用的策略文件 五、尊重你的用户 六、您的工具——加密 API 七、保护应用数据 八、企业中的安卓 九、安全性测试 十、展望未来 Eclipse...五、列表和网格 六、卡片视图和材质设计 七、图像处理和内存管理 八、数据库和加载器 九、推送通知和分析 十、定位服务 十一、安卓系统上的调试和测试 十二、货币化、构建过程和发布 Robotium 安卓自动化测试...五、片段 六、支持不同的屏幕尺寸 七、安卓兼容包 八、新的连接 API——安卓波束和 WIFI 直连 安卓应用开发秘籍 零、前言 一、活动 二、布局 三、视图、小部件和样式 四、菜单 五、探索片段、应用小部件和系统用户界面...使用线程来绘图 三、安卓画布中的绘图和绘图工具 四、NinePatch 图像 五、触摸事件和在画布上绘图 六、把它们放在一起 安卓语音应用开发 零、前言 一、安卓设备上的语音 二、文本到语音合成 三、
安卓7.0牛轧糖系统 开篇 本文章主要介绍android 7.0中引入的新特性和新功能。 安卓程序员开发者你需要重视一下,以方便日后对android7.0的开发工作。...安卓7.0介绍 安卓7.0是于2016谷歌IO开发者大会上推出的新一代安卓版本,被定名为Nougat(牛轧糖)。 作为一个大版本的更新,安卓7.0中较以往增加了很多新特性新功能,丰富了安卓生态。...安卓多窗口界面 如何使用多窗口模式: 打开多任务管理界面,选择一个应用卡片,拖动至屏幕顶部,即可开启多窗口模式。现在支持上下分屏和左右分屏。 通知增强 安卓7.0中对通知进行了许多增强。...消息的传递样式可以进行自定义,开发者只需使用类MessagingStyle进行配置消息、标题和内容的视图即可。 安卓7.0可以将一个应用的多条通知归拢在一起。用户可以进行拒绝和归类的操作。...安卓开发工具 快速的应用安装方式 安卓7.0中运用即时编译,应用安装速度和系统更新的速度得到大幅度的提升。在安卓6.0中的大型应用哪怕需要几分钟的安装时间,现在你可能只需要几秒。
领取专属 10元无门槛券
手把手带您无忧上云