博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义控件:动态获取控件的高
阅读量:4129 次
发布时间:2019-05-25

本文共 1440 字,大约阅读时间需要 4 分钟。

/** * 根据指定的宽高比,动态设置imageview的高 * @author cui * */public class RatioImageView extends ImageView {	public float ratio = 0f;	public RatioImageView(Context context, AttributeSet attrs, int defStyle) {		super(context, attrs, defStyle);	}	/**	 * xml 中使用自定义属性的时候,走这个方法	 * @param context	 * @param attrs	 */	public RatioImageView(Context context, AttributeSet attrs) {		super(context, attrs);		ratio = attrs.getAttributeFloatValue("http://schemas.android.com/apk/res/com.tencent.apps", "ratio", 0f);	}	public RatioImageView(Context context) {		super(context);	}	/**	 * 要复用这个类ratio就必须动态设置	 * 	方法一:setRatio(int ratio)	 *  方法二:自定义属性attrx.xml	 */	public  void setRatio(int ratio){		this.ratio = ratio;	}		/**	 * MeasureSpec: 测量规则,由size和mode组成	 * size : 表示当前控件具体的像素值	 * mode : 测量的模式,共三种:	 *      MeasureSpec.AT_MOST : 对应的是wrap_content;	 *      MeasureSpec.EXACTLY : 对应的是match_parent,具体的dp值	 *      MeasureSpec.UNSPECIFIED : 未定义的,一般多用于ListView对adapter的View测量中	 *      	 * widthMeasureSpec: 是父View通过size和mode计算好的测量规则	 * heightMeasureSpec: 是父View通过size和mode计算好的测量规则	 */	/**	 * 1 根据测量规则拿到宽	 * 2 根据宽高比+宽  得到高	 * 3 将高做成测量规则中	 */	@Override	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {		int width = MeasureSpec.getSize(widthMeasureSpec);		if (ratio != 0) {			int height = (int) (width/ratio);			heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);		}		super.onMeasure(widthMeasureSpec, heightMeasureSpec);	}	}

转载地址:http://ojdvi.baihongyu.com/

你可能感兴趣的文章
oracle case when then else 语法
查看>>
eclipse 显示内存使用情况
查看>>
windows下Nginx安装及使用
查看>>
oracle使用&(百分号)或_(下划线)进行模糊查询
查看>>
jquery replaceALL实现方法/js replaceALL实现方法
查看>>
java使用poi解密excel文件
查看>>
java使用poi实现excel保护工作表实例代码(支持.xls和.xlsx)
查看>>
java获取当前时间
查看>>
win10系统安装oracle11g详细步骤
查看>>
oracle导出导入命令行
查看>>
jprofiler8远程监控tomcat
查看>>
Hibernate Annotation O/RM 映射异常
查看>>
query did not return a unique result
查看>>
eclipse下安装Extjs的插件spket
查看>>
lucene-3.0.2 demo 入门
查看>>
lucene结构说明中文文档
查看>>
lucene 核心索引类
查看>>
代码中书写文件路径符号的问题
查看>>
lucene中StandardAnalyzer的理解
查看>>
linux命令
查看>>