首页 文章 精选 留言 我的

精选列表

搜索[布局逻辑],共10003篇文章
优秀的个人博客,低调大师

Android开发实践:布局的平分

从一个简单的任务入手,“如何在水平方向上一左一右均匀地放置两个Button”,有很多种方式可以实现这个功能,在此做一个简单的总结,顺便深入理解下有关gravity, layout_weight 等相关概念的原理和应用。 一、效果图 二、思考 RelativeLayout 和 LinearLayout 中分别如何左右放置button (1) 在RelativeLayout中放置 由于 RelativeLayout 内部的子控件都可以指定相对位置,因此很容易实现左右放置两个Button的任务,如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 < RelativeLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:orientation = "horizontal" > < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "LeftButton" android:layout_alignParentLeft = "true" /> < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "RightButton" android:layout_alignParentRight = "true" /> </ RelativeLayout > 效果如图所示: (2) 在LinearLayout中放置 由于LinearLayout是顺序排放所有的控件,如果希望两个button分开地位于一左一右,则必须在两个Button之间再加一个layout_weight为1.0的隐形view才能实现。示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_margin = "10dp" android:orientation = "horizontal" > < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "LeftButton" /> < View android:layout_width = "0dp" android:layout_weight = "1.0" android:layout_height = "0dp" /> < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "RightButton" /> </ LinearLayout > 效果如图所示: 三、 在水平方向“均分”整个Layout 其实,对于LinearLayout而言,最简单地平分方式就是将子控件的layout_width属性值设置为0,同时layout_weight属性设置为1.0这样,所有的子控件就会自动均分整个LinearLayout ,例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_margin = "10dp" android:orientation = "horizontal" > < Button android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1.0" android:text = "LeftButton" /> < Button android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1.0" android:text = "Right" /> </ LinearLayout > 效果如图: 由图中效果可以看到,两个Button很好地一左一右平分了整个LinearLayout,但是由于Button的layout_width设置的是0dp,通过layout_weight来决定长度,因此Button都被横向拉长了,如果希望Button的layout_width设置为wrap_content,那该如何实现均分呢?其实,可以通过在Button外再包围一层LinearLayout来实现,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 < LinearLayout android:layout_width = "match_parent" android:layout_height = "wrap_content" android:layout_margin = "10dp" android:orientation = "horizontal" > < LinearLayout android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1.0" android:orientation = "horizontal" > < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "LeftButton" android:layout_gravity = "center" /> </ LinearLayout > < LinearLayout android:layout_width = "0dp" android:layout_height = "wrap_content" android:layout_weight = "1.0" android:orientation = "horizontal" android:gravity = "center_horizontal" > < Button android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "RightButton" /> </ LinearLayout > </ LinearLayout > 这样地话,由两个Button外围的LinearLayout平分了整个水平的layout,两个button的大小采用wrap_content,也不会被拉伸,并且通过外围的LinearLayout的android:gravity属性实现了居中。 这里注意Button外围的LinearLayout的android:gravity属性,很关键,该属性决定其子控件在该控件中的位置。所以Button外围的LinearLayout设置了android:gravity="center",因此Button才能在该LinearLayout的正中央。 思考,如果给Button加一个android:gravity="right"的属性,会是什么效果呢? 答案: 会使得 Button 内部的文字向右靠齐,而不是在中央。 本文转自 Jhuster 51CTO博客,原文链接:http://blog.51cto.com/ticktick/1321114,如需转载请自行联系原作者

优秀的个人博客,低调大师

国际巨头联手布局物联网

就在此前刚刚落幕的科技盛宴2016CES展上,三星、微软等巨头都开始发力物联网生态系统,向市场展示了行业的发展方向。微软Windows操作系统和硬件业务执行副总裁特里·梅尔森就表示:“上百万的设备和物件使用开放协议和开发标准互相通信,为全球的软件开发者、设备生产商和各种新兴制造商创造各种机会。” 虽然三星与微软在物联网技术方面的合作依然披着神秘的面纱。但是三星电子在此次CES上展出的智能电视SUHD TV、智能冰箱Family Hub都带着鲜明的物联网烙印。 比如刚刚发布的极具前瞻性的Galaxy TabPro S高端平板电脑,这款二合一平板电脑将三星Galaxy Tab平板电脑的最佳性能和Windows10操作系统的丰富功能相结合。同时还展示了如何让Windows10跟三星家用电器进行通信,比如问微软小娜洗衣机是否已经把衣服洗好了,或者分析某个家庭成员的洗衣机使用习惯等等。 还有全球首款无边框曲面电视,三星SUHD TV也进一步加大了在智能互联领域的发展。据悉,2016三星全线新品SUHDTV都将可以连接并控制超过200项兼容SmartThings的设备。消费者不仅可以从电视上看到按门铃的来客,也可以轻松通过电视来实现锁门或开门。 除了电视,三星还发布了Family Hub冰箱。它将为消费者带来全新的食物管理、采购和配置的相关体验。据了解,冰箱内置三台照相机,能够在每次关门的时候记录下冰箱内的情况,消费者通过智能手机就能看到冰箱中的食物情况。另外,还拥有许多智能的数字化新功能,外部的21.5英寸全高清液晶显示屏,可用于家庭成员上传图片和留言等,使冰箱成为家庭的连接中枢,而内置的三个高清相机方便用户通过智能手机监控冰箱内部,从而实现食材的有效管理。此外,该款产品还能直接在线订购食物、播放音乐、查看日历,甚至是观看电视节目,能够为用户的日常生活带来更多丰富体验。 这款产品的出现,标志着三星在探索白电产品智能化的方向上已经取得了重要进展。但是,三星推进产品智能化的基础,是其精良的产品品质和基础技术积累。前不久,推出的“品道私厨系列”和“蝶门?美食窗系列”冰箱,在无霜保湿、极致控温、高效蓄冷上都具有出色表现。三星相关负责人表示,技术上的不断研究创新,站在市场前沿,用更多更好的产品来满足消费者日益增长的多样化需求,才是企业永续发展之道。 本文转自d1net(转载)

优秀的个人博客,低调大师

IBM开始布局区块链业务

本周二,IBM一口气宣布了数个区块链相关的举措,包括托管在其Bluemix云上的开发者服务。开发者可以在IBM云上利用DevOps工具建立、部署和监视区块链应用。 区块链是一种安全记录技术,脱胎于其在比特币和其他金融交易中的传统应用方式。IBM公司目前非常看好这一技术,提供云服务供开发者们建立区块链网络,并在其上测试和部署相关应用。 比特币交易的“公共分类账”就是区块链应用的一种,区块链其实就是事件的分布式记录,记录里的每个区块包含一个自身的哈希值和前一个区块的哈希值,像链条一样串起来。区块链的应用使得修改或伪造过往交易记录非常困难,因为要动任何一环,都必然导致其后的每一个区块也要做相应修改。 若使用IBM的云服务,开发者可以在12秒之内就让自己的迷你区块链沙盒运行起来,之后大约1分钟时间,第一个区块链样本应用就能跑起来了。IBM的Bluemix云服务还提供技术集成,开发者可以将其他技术混杂到自己的区块链应用中。在Bluemix上,你可以打造移动前端,也可以往区块链中加应用编程接口(API)。 IBM预计,公司企业将开始以多种新方式利用区块链技术,驱动对测试和部署相关应用的简单易行方式的需求。 区块链的意义远大于区区比特币的金融交易,它很可能将影响整个人类经济生活的运转方式。 例如,将区块链技术与物联网结合,能够提供货运公司关于产品运送的新信息。不仅仅是包裹跟踪,一份区块链分类账能够记录下货物的状态,确定货物损坏时间。货运公司可以利用区块链和无线射频识别(RFID)传感器来跟踪冷冻货柜,查找货柜位置,查询内容物是否腐坏,查看货柜内部温度。 IBM的华生(Watson)物联网平台将容许RFID传感器、条形码扫描器和其他设备与区块链技术结合使用。 随着越来越多的自动驾驶和自动停驻汽车开始上路,区块链的另一个潜在应用可能会出现在汽车保险行业。区块链分类账将能帮助保险公司确定驾驶员或自动驾驶系统在事故中是否有在操控。 区块链记录可能成为保险公司鉴定事故的唯一“共享真相来源”。 除了云服务和物联网,IBM还开放了位于伦敦、纽约、新加坡和东京,被称为“公开室”的办公室。开发者们可以和IBM的区块链专家们一起开发商业应用。 本文转自d1net(转载)

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册