学习卫星菜单

学会坚持的自己写的底部中间菜单

转自http://www.cnblogs.com/persist-confident/p/4487386.html

看了hyman老师的视频,听起来有点迷糊,所以就想把实现卫星菜单的实现总结一下。长话短说,下面总结一下:

一、自定义ViewGroup
1)、自定义属性文件

属性的定义:

<attr name="position">
<enum name="left_top" value="0"/>
<enum name="left_bottom" value="1"/>
<enum name="right_top" value="2"/>
<enum name="right_bottom" value="3"/>
<enum name="center_bottom" value="4"/>
</attr>
<attr name="radius" format="dimension"/>

这里需要注意的是:如何将属性文件和自定义的ViewGroup联系起来

=====================================================

其仍然有问题

主要是其子菜单没有完全摆放正确

======-------------------------以下是他写的(确实有可取地方)-- ------------------===========

4)关于自定义控件的布局

这里我主要着重讲一下主菜单在下面中间位置的布局:

首先获得主菜单的长度宽度:

int width = mCButton.getMeasuredWidth();
int height = mCButton.getMeasuredHeight();

要想主菜单放到屏幕的中间位置:

则他的x坐标为l = getMeasuredWidth() / 2 - width / 2;

y坐标为:t = getMeasuredHeight() - height;

最后布局

mCButton.layout(l, t, l + width, t + height);

 

子菜单的布局位置

t1 = (int) (mRadius * Math.sin(Math.PI / count * (i + 1)));
l1= (int) (mRadius * Math.cos(Math.PI / count * (i + 1)));

最终子菜单的坐标

l = getMeasuredWidth() / 2 - width / 2 - l1;
t = getMeasuredHeight() - height - t2;

 

子菜单布局

child.layout(l, t, l + width, t + height);

 

 

通过ArcMenu将其联系起来,而ArcMenu就是我们自定义的ViewGroup

<declare-styleable name="ArcMenu">
<attr name="position"/>
<attr name="radius"/>
</declare-styleable>

=====================------这是他的结果-------===============

最终效果图如下:

=====================------这是我的结果-------===============

 

 

 

------------------------------------------------------------------------------------------------ 

仍然需要改进, 望有知道原因大神指教!

 

转载于:https://www.cnblogs.com/nucdy/p/4732808.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 的垃圾回收回收机制(源码)

python内存管理及垃圾回收 1. 引用计数器 1.1 环状双向连表 refchain 在python程序中创建的任何对象都会放在refchain链表中&#xff0c;并且可以通过这个对象访问到上一个和下一个对象。 name 张三 age 18 hobby [美女,吃饭]内部会建立一些数据 -打包 C语言叫做结构体-…

未来五年人工智能将实现的五大突破

来源&#xff1a;资本实验室不论是可以和你对话的智能音箱&#xff0c;还是能够自己作画的虚拟艺术家&#xff1b;不论是能够帮助农民准确判断种植和施肥时间的农场管理系统&#xff0c;又或者是能够在演唱会现场快速识别罪犯的人脸识别程序&#xff0c;人工智能已经开始在各行…

python面试常问

一、Python基础部分 1. 数据类型 数字类型(Numbers)&#xff1a; 整数(int), 浮点数(float), 复数(complex) 布尔(Booleans)&#xff1a; True和False 字符串(Str)&#xff1a;Uniconde字符序列, 在引号内包含 列表(list)&#xff1a; 有序的值的序列 元组(Tuples)&#x…

springJDBC一对多关系,以及Java递归,jsp递归的实现

maven编译&#xff0c;springMVCspringspringJDBC框架。 要实现的功能是一个文件夹下&#xff0c;可能显示n个文件夹&#xff0c;每个文件夹下又可能显示n个文件夹。。。。 前台效果&#xff1a; controller中的方法如下&#xff1a; RequestMapping(value"/index",m…

未来全球15大热门研究方向出炉!

转自&#xff1a;科学网&#xff08;sciencenet-cas&#xff09;要点速览伦敦、纽约、新加坡、香港、巴黎、北京、东京、迪拜、上海、柏林、波士顿&#xff0c;这些国际性大都市在科技创新方面的表现如何&#xff1f;它们主要关注哪些研究方向&#xff1f;15大科技创新策源点&a…

Django-rest framework

Django-rest Framework 1. FBV CBV 1.1 开发模式 普通开发方式&#xff08;前后端放在一起写&#xff09;前后端分离 1.2 后端开发 为前端提供URL&#xff08;API/接口的开发&#xff09; 注&#xff1a;永远返回HttpResponse 1.3 Django FBV、CBV # FBV(function base …

常用的网络营销方法有哪些

索引擎营销 电子邮件营销 即时通讯营销 病毒式营销 BBS营销 博客营销 播客营销 RSS营销 SN营销 创意广告营销 知识型营销 事件营销 口碑营销 转载于:https://www.cnblogs.com/happyday56/p/4739488.html

AI产业链分布图曝光:1040个玩家,BAT率先步入应用

来源&#xff1a;网络大数据5月9日&#xff0c;在苏州举办的全球人工智能产品应用博览会上&#xff0c;《新一代人工智能发展年度报告(2018)》重磅发布。发布方是中国经济信息社与新一代人工智能产业技术创新战略联盟。报告相当于对2018年以来全球AI领域融资、国内AI企业分布、…

什么是混合云?

来源&#xff1a;光联集团混合云是使那些正常的进化措施看起来更酷&#xff0c;是IT前沿术语之一。亚马逊&#xff0c;谷歌和微软等云供应商倡导企业关闭内部数据中心并将所有基础架构迁移到云端&#xff0c;这就是“超融合”数据中心战略。1转移基础设施对于刚刚起步的公司而言…

Shell—grep、sed、awk

Shell学习 Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。 Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面访问操作系统内核的服务。 She…

【科普】AI的分类与演进

来源&#xff1a;物联网智库摘要&#xff1a;AI是人工通过高强度的计算能力&#xff0c;并基于大量的环境数据、行为数据、历史数据等大数据支持&#xff0c;或是一定规则的自学习机制&#xff0c;来分析特定输入的情况下&#xff0c;事物的相关性、影响和可能处理方法&#xf…

AngularJs入门学习

http://www.ituring.com.cn/article/13471 安装并配置好所有依赖环境之后&#xff0c;只需要在cmd进入angular-phonecat目录。接着指令操作npm start&#xff1b;开启服务器。如下图&#xff1a; 打开angular-phonecat的gitbash&#xff1b; 接下来就是用编译器打开angular-pho…

nginx+uWSGI + django部署项目

项目部署 nginxuWSGI django 1. WSGI WSGI是Web服务器网关接口。它是一个规范&#xff0c;描述了Web服务器(返回静态资源的就是web服务器&#xff0c;Nginx)如何与Web应用程序(django、Flask)通信&#xff0c;以及Web应用程序如何链接在一起以处理一个请求&#xff0c;&…

71页《乌镇智库:全球人工智能发展报告(2018)》PDF下载

来源&#xff1a;专知【导读】人工智能热潮之下&#xff0c;斯坦福、阿里等纷纷出台人工智能报告。乌镇智库已连续发布三年《全球人工智能发展报告》&#xff0c;以宏观视角纵览全球人工智能发展&#xff0c;从产业、融资、技术、教育和应用等多个角度展现人工智能在全球的发展…

Windows实用技巧

Windows常用命令&#xff0c;亲测可用 创建文件夹Test&#xff0c;命令为&#xff1a;mkdir Test 盘符&#xff1a; 进入系统中的某个盘&#xff0c;例如E&#xff1a;进入E盘cd 文件夹位置 进入某个文件夹&#xff0c;需要先进入盘符&#xff0c;即完成第一步&#xff0c;例如…

python进程、线程、协程

通过学习bi站 蚂蚁学Python 老师视频总结文档&#xff0c;仅用于学习。。。 python进程、线程、协程 多线程&#xff1a;threading&#xff0c;利用CPU和IO可以同时执行的原理&#xff0c;不会让CPU干巴巴的等待IO完成 多进程&#xff1a;multiprocessing&#xff0c;利用多核…

一文读懂计算计仿真技术

来源&#xff1a;传感器技术计算机仿真作为分析和研究系统运行行为、揭示系统动态过程和运动规律的一种重要手段和方法, 随着系统科学研究的深入、控制理论、计算技术、计算机科学与技术的发展而形成的一门新兴学科。近年来, 随着信息处理技术的突飞猛进, 使仿真技术得到迅速发…

Chrome Cookie SameSite 属性设置

Chrome Cookie SameSite 设置 Chrome 51 开始&#xff0c;浏览器的 Cookie 新增加了一个SameSite属性&#xff0c;用来防止 CSRF 攻击和用户追踪。 Cookie 的SameSite属性用来限制第三方 Cookie&#xff0c;从而减少安全风险。 它可以设置三个值。 StrictLaxNone Chrome 默认…

胡蜂也会逻辑推理

胡蜂能通过基本的逻辑测试。来源&#xff1a; 中国科学报逻辑推理是一种复杂的行为&#xff0c;通常被认为仅限于具有复杂神经系统的动物。但一项新的研究表明&#xff0c;胡蜂可以运用某种逻辑推理。这在无脊椎动物中尚属首次。相关成果日前发表于英国《皇家学会生物学报》。这…

二十大未来最有潜力的新材料(绝对经典值得收藏)

来源&#xff1a;新材料在线石墨烯、碳纳米管、非晶合金、泡沫金属、离子液体……20种新材料&#xff0c;为材料工业工业发展带来无限机遇。材料工业是国民经济的基础产业&#xff0c;新材料是材料工业发展的先导&#xff0c;是重要的战略性新兴产业。今天&#xff0c;科技革命…