android 自定义view(一)


很久之前就看了view的三个方法,然后现在又记不清了,现在写了个简单的自定义view终于明白一点了


onMeasure() : 画多大,宽高各是多少,自己计算出来后通过调用super.onMeasure(widthMeasureSpec, heightMeasureSpec);来告诉view

onDraw()      : 画什么东西,这个例子只是画了一个String



网上流传了一种方法用于测量画的string的宽和高,然而,并不一定有用,或许是我没设置对

先看网上的方法,来源

获取height : mPaint.ascent() + mPaint.descent()

获取width : mPaint.measureText(text)

测量高度是无效的,

测量宽度是有效的,


然后提供一种实际测试有效的方法,来源

	/**
	 * 绘制时控制文本绘制的范围
	 */
	private Rect mBound;

		mBound = new Rect();
		mPaint.getTextBounds(mDrawText, 0, mDrawText.length(), mBound);


			// 获得文字的高度
			float textHeight = mBound.height() ;


			// 获得文字宽度
			float textWidth = mBound.width();
他写的博客很值得推荐

所以有些代码还是自己亲手实验一下为好


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值