我对measure的理解。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chengxiaobo0306/article/details/74090023

我对measure的理解。

问题1:到底谁调用的onMeasure方法。

我见过的的是 父级的 MeasureChild或者 MeasureChildren 来调用的。

我用的比较多的是 自定义ViewGroup的时候,我们需要MeasureChildren 来确定children的宽度和高度,measureChildren完成以后,父级方便用children的measure以后的值(通过getMeasuredHeight或者getMeasureWidth去获得)。

问题2:简单说下,我认为的measure是怎么用的吧(我自己认为的,不知道对不对,仅供参考)。

比如Linearlayout的吧。

我说下,如果我自己是 Linearlayout(纵向),我怎么样去测量我自己的大小吧。

我分为两种,一种是,我的height无线大的情况(AT_MOST,wrap_content),我会告诉我的孩子们,你们的大小不会受限制,这样我调用measurechildren的时候,
传给孩子的 MeasureSpec 的宽和高,就足够大。child measure的时候,就放心的用空间。等到我measurechildren 完成以后,我就遍历所有的children的getMeasuredHeight方法,把他们的加起来
就是我的height的值了。

第二种情况,就是我的height是固定的一个大小(100dip,match_parent这种情况),比如 100px,我有10个children,mesure第一个child的时候,我会告诉我的第一个孩子,你可以用 100px,第一个孩子测量完成以后,比如他的高度是 20px,我接着meausure第二个孩子,我会告诉第二个孩子,你可以用的高度是80px…..以此类推。但是我们一般设置的自己的高度还是100px,那么你会不会有疑问,我已经知道我自己的高度了,为什么还要meausureChildren,这个问题,自己想一下啦。嘻嘻。

思考:

1.为什么自定义ViewGroup需要重新onMeasure,不重写会有什么问题,自己去试下。
2.我们用 xml 布局的时候,有 layout_wdith,layout_marginTop,layout_gravity 有的属性不带layout 比如 padding啊,想一下为什么是这样的(这个问题和onLayout有关系)?
3.思考 RelativeLayout的Measure实现(思考就行了,RelativeLayout比较复杂,想想就行了,把你自己当成Relativelayout)。

展开阅读全文

我对网站优化的理解

03-06

学网络搜索引擎优化(SEO)也有一段时间了,网上关于SEO的学习资料很多,看法也众说纷纭,在此我也谈谈我对SEO的粗浅了解。rnSEO通俗的讲,就是使用google或者baidu搜索某个关键词时,使你的网站排在搜索结果前几页的一种技术,或者一种策略。比如搜索“二手汽车”,你就要想办法使你关于二手汽车转让或者销售的网站,尽可能排在搜索结果的前几页,最好是第一页,这就是SEO。rn影响搜索结果排名的因素很多,网站的访问流量是很关键的一个因素,不错的访问量,再加上选择好的关键词,pr值高的网站做外链,网站从目录到内容整体结构的优化,利于搜索引擎爬虫更好的访问网站,这样做以后,我相信你的排名也就不会差到哪里去了。rn下面谈谈具体的SEO优化的技术:rn一、 关键词的选择。rn网上关于关键词选择的内容很多了,这方面就不多说了,强调一点,我觉得选择关键词rn的时候,可以考虑选择“长尾关键词”。具体的内容,大家可以参考www.seowhy.com这个网站很不错,里面的内容也很多,就是采用长尾优化很成功的一个网站。rnrn二、 关于PR值rn在SEO中很多人过于神话了PR值的重要性,我个人觉得这不完全对。在google中诚rn然将PR值做为搜索结果排名的一个因素,但却绝对不是决定因素。举个简单的例子,我所在公司的网站www.cocpdp.com 的PR值是4,其实没有怎么优化,也没有多少外链,只有一个长虹总公司的外链www.changhong.com他的PR值为6。 PR值为4按理来说流量应该不错了,实际上并不是这样,这个网站很久没有更新,google的爬虫也是10天左右才访问一次,所以在搜索与其相关内容时,它并不会很靠前。rnrn三、 关于外链的选择rn外链的选择很重要,尽量选择PR值高的网站,就像前面所讲的一样,一个高PR值的rn网站,可以将链接的网站的PR值也提高。如果你能跟163、sina、yahoo这些牛B的网站外链上,那么恭喜你,你的PR值肯定不用愁了。当然,这些大公司一般不叼咱们这些小虾米,这时候选择链接的网站,就尽量选取同行业或者相关行业的网站做链接,有一点特别注意不要加入那种链接农场,貌似很多网站可以相互链接,但事实上,只要一个网站被搜索引擎发现有作弊的行为,就会殃及池鱼,你的也就有可能被google或者baidu K掉。新站一般不宜快速进行外链,等被搜索引擎收录后,一般2~3个月,进行外链比较合适。这段时间新站的网上排名很不稳定,或者没有排名,这是很正常的,一般被称为沙盒效应(sandbox),持续rn3个月到半年,排名逐渐就开始稳定下来了。rnrn四、 关于网站结构的优化rn网站整体结构的优化也很重要,很多SEOer过多的沉迷于网站关键词的选择,我认为rn这是不对的。很多搜索引擎对keywords、description标签等已经不在很感“性趣”了。网站整体结构的优化才是王道。首先,是URL的优化,一个清楚的,能表明网站特点的URL当然在用户搜索时,能为其加分的,尤其是英文站。当然现在好的URL,基本上剩的不多了,如果有合适的你就赶快注册吧。其次,是页面代码的优化,很多SEO高手都强调过页面尽量少一点flash或者javascript代码,虽然影响了视觉效果,但确大大加快了搜索引擎爬虫索引网站的速度。如果非要用到flash做菜单,也最好在下面采用静态的方式做个导航条。现在的网站大多采用div+css进行布局,嵌杂着大量的js代码,很多专家建议,单页面的大小最好不要超过100KB,是很有道理的,太大了会影响搜索引擎索引速度。如果代码太多,可以采用一些压缩工具,对页面的代码进行一些优化。有一个不错的javascript压缩器叫做packer(http://dean.edwards.name/packer),大家可以看一下,是国外的一个牛人写的,相当的有才。最后,再把网站上的图片的部分也利用起来,那就是ALT标签的作用了,网上关于这一点,已经说的很多了,我就不老生常谈了。rnrn五、 内容好才是王道rn呵呵,这句话有点像P话,也是实话。一个优秀的SEO从业者能使一部分人发现某个rn网站,但却不能保证他再次访问这个网站。一个优秀的网站策划人员或者叫信息架构师的三个目标就是:使用优化技术使用户找到你的网站,在你的网站上找到他所需要了解的内容,是他对你的网站产生兴趣,并可能经常光顾。在这点上很多大的网站都做的很好,像网易的新闻,尤其是评论部分,有一定的言论自由,很多人热衷于此。CSDN、天涯、百度贴吧等等都做的很好,因为他们很好的考虑了用户的体验度。一句话,优秀的内容,大量的原创,经常的更新,网站的排名和PR值也就自然上去了。rnrn六、 分析优秀的竞争对手rn知己知彼,百战不殆。这句话用在SEO行业同样有效果,搜索一个关键词,然后仔细rn分析排在前5位的网站,你肯定会有很多心得。rnrnSEO行业未来的预测rn要想做好SEO,我个人觉得在网站一开始制做的时候,就要综合考量,就要以易推广性、易发现性、易使用为原则,而不要等什么都弄好了,再进行优化,这时候再对网站结构做调整就是很麻烦了。目前SEO这个行业有点混乱,水平也高低不齐,白帽SEO、黑帽SEO或者两者兼而为之。有些SEOer通过为竞争对手制作恶意镜像站,为竞争对手制作恶意的黑帽链接,挤夸对手,抢得排名。所以,我个人觉得随着大家网站优化意识的加强,专业做SEO的人员,以后机会越来越少了,而且搜索引擎也必然要不断的对网站真正的“价值”,对用户的需求,有一个较为可靠的判断。如果搜索引擎的技术没有不断的更新,没有越来越人工智能,那所有的网站可能就只有通过竟价取得优先排名了。rnrn以上内容,全是一家之言,欢迎广大高手对其进行批评指正。rn在下博客地址:blog.csdn.net/huanghaigoodrnrn 论坛

我对抽象的理解

11-27

新人一个,学java两个多月了,说说我对抽象的理解。rn假设电脑系统坏了,那么我们脑中首先想的就是解决方法,这时脑中想的解决方法就是抽象的如:rnclass 装系统rnrn public abstract void 修电脑方法_U盘();rn public abstract void 修电脑方法_光盘();rn public abstract void 修电脑方法_ghost镜像();rnrnrn如上我们想到了三种安装系统的方法,一种是需要系统光盘,一种是需要一个做成启动项的U盘,并且里面有win7的镜像,一种是需要电脑中非系统盘符内写有win7系统的镜像,并且电脑内有一键ghost; 那么我们开始找所需要的装系统工具,目前找到的工具只有一个U盘,U盘内与上述符合,那么开始用U盘装系统。代码如下:rnclass U盘装系统 extends 装系统rnrn public abstract void 修电脑方法_U盘()rn rn 将U盘插入电脑;rn 找到镜像装系统;rn 安装完毕;rn rnrnrn如上所写:我认为抽象放到现实生活就是,发生了一些问题需要你解决,你当时想的解决方法就是抽象到,当你按照你脑中那个方法做的时候就等于将抽象方法实现了,再举个例子:你的电脑坏了需要修理,你心里就想到了解决方法(abstract),然后你就用想到的方法去修理(实现)。rn其实人就是一个抽象与实现的个体,如果发生一件事,你自己能解决就等于你自己把抽象方法实现了。如果自己解决不了就找到其他实现了此类抽象方法的人。rn还拿修电脑说事:rnclass 张三rnrn public void 吃饭;rn public void 喝水;rnrnclass 张三的电脑 rnrn //张三没有这功能所以rn public abstract void 修理();rn rnrnclass 修电脑的 extends 张三的电脑rnrn rn public abstract void 找到毛病修理()rn rn rn 电脑 r=修理();rn rn private 电脑 修理 ()rn rn 修理完毕();rn return 修完的电脑;rn rnrn请大神点评理解的对不对,至于代码小小得了 论坛

理解的对么?

01-05

directshow播放顺序rn我在网上看了些帖子,但是和我理解的存在点疑问,来这里问问。rn我的理解是这样:rn1)rnrnhr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, rn IID_IGraphBuilder, (void **)&pGraph);rn//hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC,rn//IID_IMediaControl, (void **)&pMC);rn//以上两句只是通过不同的方式来来获取FilterGraph 并且 可以通过IID_IGraphBuilder IID_IMediaControl 互相获取对方!也可以获取其他借口只是要遵循下面的规则:rnrnrnhr = pMC->QueryInterface(IID_IGraphBuilder, (void **)&pGraph);rnhr = pGraph->RenderFile(lpszMovie, NULL);//是不是这句要传给filer graph视频 然后只用这句调用完成之后才会 有真正的内容在filer graph(类似于实例化一个对象)rn//然后才可以通过pGraph 获取其他借口 ,对视频的控制才有效果rn//总结是就是pGraph->RenderFile 必须先于pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pMediaSeekiking);rn//pGraph->QueryInterface(IID_IMediaPosition, (void **)&pMediaPos);rn//pGraph->QueryInterface(IID_IVideoWindow, (void **)&pVideoWnd);rn//pGraph->QueryInterface(IID_IBasicVideo, (void **)&pBasicVideo);rn//调用才会有用,打破了这个顺序就会出错。rnrnrnpGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);rnpGraph->QueryInterface(IID_IMediaEventEx, (void **)&pEvent);//pMC->QueryInterface(IID_IMediaEventEx, (void **)&pME); 这两句是一样的rnpGraph->QueryInterface(IID_IMediaSeeking, (void **)&pMediaSeekiking);rnpGraph->QueryInterface(IID_IMediaPosition, (void **)&pMediaPos);rnpGraph->QueryInterface(IID_IVideoWindow, (void **)&pVideoWnd);rnpGraph->QueryInterface(IID_IBasicVideo, (void **)&pBasicVideo);rnrnhr = pControl->Run();rnhr = pEvent->WaitForCompletion(INFINITE, &evCode);//调用这这句会发生阻塞,等待视频播放完成rn//如果我这时候调用pMediaPos->put_CurrentPosition();的会产生中断,处理这个设置当前视频的位置rnrnrnrn忘指正!谢谢rn 论坛

没有更多推荐了,返回首页