android软件百分比怎么实现,android 百分比布局
欢迎大家下载我个人开发的app安琪花园
其基本思路是:
1. 通过自定义属性,作用于PercentRelativeLayout的子控件上面
2. 重写PercentRelativeLayout 静态内部类LayoutParams继承自RelativeLayout.LayoutParams
3. 在重写的LayoutParams里面解析出新增加的属性
4. 重写PercentRelatvieLayoutParams里面的generateLayoutParams(AttributeSet attrs)方法,并返回我们自己定义 的LayoutParams实例
5. 重写percentRelativeLayout的onmeasure方法,计算出控件的真正宽高。
接下来看一下具体的代码
第一步:
第二步, 第三步: 位于自定义控件PercentRelativeLayout下面
public static class LayoutParams extends RelativeLayout.LayoutParams {
public float width;
public float height;
public LayoutParams(Context c, AttributeSet attrs) {
super(c, attrs);
TypedArray array = c.obtainStyledAttributes(attrs, R.styleable.Percent);
width = array.getFloat(R.styleable.Percent_width_percent, 0);
height = array.getFloat(R.styleable.Percent_height_percent, 0);
array.recycle();
}
}
第四步:返回了自己写的LayoutParams实例
@Override
public RelativeLayout.LayoutParams generateLayoutParams(AttributeSet attrs) {
return new LayoutParams(getContext(), attrs);
}
第五步: 重写onMeasure方法, 计算出真正的宽高
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
int count = getChildCount();
for(int i = 0; i < count; i++){
View view = getChildAt(i);
ViewGroup.LayoutParams params = view.getLayoutParams();
if(checkLayoutParams(params)){
LayoutParams params1 = (LayoutParams) params;
if(params1.width > 0){
params.width = (int) (width * params1.width);
}
if(params1.height > 0){
params.height = (int) (height * params1.height);
}
view.setLayoutParams(params);
}
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
android软件百分比怎么实现,android 百分比布局相关推荐
- Android软件开发之盘点界面五大布局(十六)
Android软件开发之盘点界面五大布局 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archive ...
- 做简单的android 软件推荐,Android_适用于Android开发的简单聊天软件,适用于android 开发。是一个简 - phpStudy...
适用于Android开发的简单聊天软件 适用于android 开发.是一个简单的聊天软件,包括知识点,各个控件的运用(ExpandableListView,ViewPager,Spinner,Line ...
- 删除android软件,adb shell删除Android系统下的软件
一.删除Android系统下的软件,使用adb shell进入系统,然后使用命令重新挂载"/system"目录为读写权限,具体操作及命令如下: 1.打开dos窗口:win+R 输入 ...
- for android 软件,安卓特工 for Android
安卓特工是一款手机装机必备软件,丰富多采的功能和人性化原素使个性化得到延伸,软件操作简单,几乎不消耗内存和系统资源,拥有安卓特工是一种充满乐趣的智能体验,安装安卓特工,从此高端商务功能不再是天价手机的 ...
- android软件无法联网,关于android软件wifi联网无法使用的问题
Android模拟器默认的地址是10.0.2.3,默认的DNS也是10.0.2.3,对于在家里上网学习Android的人来讲,一般电脑的IP都是192.168.1.100之类的,不在同一个网段.所以就 ...
- android软件多版本共存,Android Studio 多版本共存
Android Studio 多版本共存 背景 准备 无安装版 背景 假如你现在需要运行一个gradle:2.x的项目,而你目前的AS的版本是3.x,由于2.x项目升级到3.x改动比较大,但你又不想对 ...
- 强制安装android软件,求肿么在Android上强制安装某一个软件。我想安装一个软件,但是安装不了,显示应用程序未安装。怎...
我教你下载QQ管家,删除那个软件,就行了.我再教你一个网上的知识 很简单. @echo off echo 正在清理系统垃圾文件,请稍等...... del /f /s /q %systemdrive% ...
- Android游戏开发Android软件开发【教程三十篇】
Android软件开发之发送短信与系统短信库解析(三十) New Android软件开发之获取通讯录联系人信息(二十九) New Android软件开发之PreferenceActivity中的组 ...
- 第三方Android 软件商店:现状和思考
这几天聊得最多的就是移动互联网圈内做Android第三方软件商店的网站,下面的网站不分排名顺序: hiapk市场(安卓网) http://www.hiapk.com/ gfan市场(机锋网) htt ...
- android软件百分比怎么实现,Android自实现百分比布局
在开发中,组件布局是大家每日开发必须要面对的工作,对于Android来说提供五种常用布局,分别是:LinearLayout(线性布局) TableLayout(表格布局) RelativeLayout ...
最新文章
- web3.js(二)根据私钥推出地址查询以太数量
- MaxCompute 2.0—从ODPS到MaxCompute
- 最前线|阿里大文娱板块Q3营收同比增长20%,优酷及UC业务带动显著
- 缓存之EHCache
- oracle12cr2发布时间,Oracle 12cR2 发布在即
- oracle数据库启动多个监听,一台Oracle数据库服务器上两个监听同时使用
- JVM各个组成部分和其基本功能
- 在 Kali Linux 中更改 GRUB2 背景的 5 种方式
- [USACO13JAN] Seating
- 1000行代码入门python-Python基础知识和工作环境
- 学生信息表 -通过选择年级和班级得到详细的学生信息名单
- java实现带logo的二维码
- PDF文件如何修改密码
- Google Earth Engine APPS(GEE)——使用 AREA2 和 CODED 估算森林砍伐和退化面积(第 1 部分:运行 CODED)
- Unity5入门及进阶项目实战 星际迷航-肖师军-专题视频课程
- 【算法导论】 内部排序算法总结
- 中国第一批程序员的“青春饭”已经恰完了,35+的程序员该何去何从?
- Appium:配置华为手机鸿蒙HarmonyOS系统参数
- agv ti 毫米波雷达_一种基于毫米波雷达的AGV小车的制作方法
- PostgreSQL 源码解读(32)- 查询语句#17(查询优化-表达式预处理#2)
热门文章
- 机器人与目标匹配问题及解决 虚拟动力学 纳什平衡 Q-Learning
- 移动设备input输入框点击后自动选中内容_带你用 Python 实现自动化群控(入门篇)...
- ajax走到error_jQuery中ajax 跳入error的原因总结
- 内存条上面参数详解_价格极低的国产颗粒内存条:光威弈系列Pro评测,超频表现超稳定...
- java 反射创建对象并赋值_[原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)...
- python计算累计收益率的函数,在Python中计算累积密度函数的导数
- c++语言表白超炫图形_R语言统计与绘图:组合图形布局
- opencv android模版匹配,Opencv for android 模板匹配
- mysql故障排查思路_Mysql高负载排查思路
- Python案例:四种方法判断回文字符串