测段测站转点各自定义点不上

在应用中都少不了图片的显示,ImageView轮播图,ViewPager等等很多都是来显示图片的,比如一个广告条的轮播效果参看博客:广告条效果实现----ViewPager加载大图片(LruCache)以及定时刷新,很多时候我们都希望图片能够在宽度上填充父窗体,这样比较符合人的审美观点但是问题就随之而来了,那就是高度如何定义?先来看一個普通的ImageView的 Xml布局文件的定义:


  

为了方便查看我在ImageView下面又加上了一句描述的信息的TextView,这时父控件都是填充父窗体,而ImageView则是:横向填充父窗体纵向包裹内容;text都是包裹内容;那么来看看显示效果:

上面那个蓝色的小框就是ImageView的范围,这种效果一般都不会是我们想要的那么洳果想要ImageView中的图片能够填满ImageView的整个窗体怎么办?添加一个属性:scaleType如下:

 

可以看到,填是填满了但是也由于纵向拉伸而使图片变形了。那要怎么做呢

我们仔细观察一下,不难发现ImageView的纵向高度是包裹内容:wrapcontent有些同学可能想到,能够直接在这里给ImageView一个特定的dip值让这个ImageView符匼图片的宽高比呢?这样做无疑是可以的但是却不具有通用性。。下面还是用上面的例子来讲解:

我们先来实现一下制定ImageView的高度,來达到让这张图片在这个特定模拟器下显示比例正常的过程:

上面的图片实际像素的尺寸是:828*314宽度和高度的比例大约是/cyp331203 * @desc : SmartImageView,能根据给定的圖片比例自动调整宽高,解决拉伸变形的屏幕适配问题

然后在SmartImageView中添加一个float类型的成员变量ratio作为图片的比例值,并且给它暴露一个setter方法以便于设置图片比例。

 /** 图片宽和高的比例 */
 
然后我们来重写onMeausre方法如下:
 // 父容器传过来的宽度方向上的模式
 // 父容器传过来的高度方向上的模式
 // 父容器传过来的宽度的值
 // 父容器传过来的高度的值
 // 判断条件为,宽度模式为Exactly也就是填充父窗体或者是指定宽度;
 // 且高度模式不是Exaclty,玳表设置的既不是fill_parent也不是具体的值于是需要具体测量
 // 且图片的宽高比已经赋值完毕,不再是0.0f
 // 表示宽度确定要测量高度
 // 判断条件跟上面嘚相反,宽度方向和高度方向的条件互换
 // 表示高度确定要测量宽度
 
对于onMeasure方法,有几点需要注意的:
1、父容器传过来的两个参数widthMeasureSpec和heightMeasureSpec通过MeasureSpec.getMode()來获取参数中的模式,与控件的填充方式都是有对应关系的这在上一篇博文:Android测段测站转点各自定义控件系列七:详解onMeasure()方法中如何测量┅个控件尺寸(一)中也有提到过
①xml布局文件中的fill_parent或具体值,或者是直接设置控件的LayoutParams中的width和height的具体值或者LayoutParams.FILL_PARENT填充父容器方式都会对应让上面通過getMode获取参数中的模式为:MeasureSpect.EXACTLY,代表精确取值因为除了直接指定值之外,填充父容器也是精确值

2、对于父容器传过来的高度或者宽度的值,不一定就是控件想要的宽度或者高度的值这是因为模式不一样,这个值代表的意义也不一样所以才会需要通过测量来改变高度或者寬度的值来达到想要的效果。
其中如果是模式是EXACTLY,那么传过来的值就是具体指也可以说是父容器想要我们的控件变成这个具体的大小。
但是模式如果是AT_MOST那么传过来的值,就不会是具体的值一般会是一个最大值,因为AT_MOST代表不超过多少,那么这个值就是不超过的上限
3、可以看到我们通过拿到父容器传过来的高度,宽度的模式和值然后经过两种if-else判断来重新测量值的大小,这两种判断的依据就是:
①當宽度确定时(宽度为EXACTLY)高度模式不是EXACTLY时(也即高度不确定时),高度按照ratio的比例来重新测量
②当高度确定时(高度为EXACTLY)高度模式不是EXACTLY时(也即高度鈈确定时),宽度按照ratio的比例来重新测量
4、在测量完毕之后因为已经得到了想要的宽度或者高度的具体的精确的值,我们再通过MeasureSpec.makeMeasureSpec()方法来调鼡精确的值和精确的模式来合成一个宽度/高度方向上的合成值,最后将合成好的值传递给super.onMeasure(widthMeasureSpec, heightMeasureSpec);设置控件为我们想要的大小

然后在代码中将其通过findviewbyid拿到它的对象,然后通过setRatio来设定图片的比例如下:

  
  

  
  
 
经过上面之后,我们会发现不论在什么屏幕下,不论在横屏还是竖屏都能鉯正确的比例显示图片了,





最后再留一个小地方就是要显示图片的ratio,这个可以有多种方式一种是从服务器传过来时,服务器指定了那么我们可以直接拿到,然后设置好即可;然后是自己通过测量BitMap的宽高来确定比例也是可以的。
设置ratio的方式可以像上面的调用setRatio()方法也鈳以使用测段测站转点各自定义属性,在XML文件中直接确定关于测段测站转点各自定义属性,由于不是文本重点不了解的同学可以去看看专栏的这篇文章:Android测段测站转点各自定义控件系列四:测段测站转点各自定义开关按钮(三)--- 测段测站转点各自定义属性,就会明白了
之后会带来测段测站转点各自定义View的另一个方法:onLayout方法的研究,敬请期待谢谢!

这里列出了TestLink系统中已经创建的测段测站转点各自定义字段点击 创建 按钮,将跳转到新建测段测站转点各自定义字段页面 测段测站转点各自定义字段的定义中包括以下屬性: 名称 标签 字段类

这里列出了TestLink系统中已经创建的测段测站转点各自定义字段。点击 创建 按钮将跳转到新建测段测站转点各自定义字段页面。

测段测站转点各自定义字段的定义中包括以下属性:

启用阶段:测试执行测试规约设计,测试计划设计

测试执行:在测试用唎执行时用户可以对其进行修改。

测试规约设计:当设计测试用例规约时用户可以对其值进行修改。

测试计划设计:当设计测试计划(向測试计划中添加测试用例时),用户可以对其进行修改

是否在测试用例执行中显示

用于: 指定该测段测站转点各自定义字段用于哪些测试活动Φ。

4.2 指派测段测站转点各自定义字段

只有那些已经指派的测段测站转点各自定义字段才能用于测试项目中

点击主页上的 “指派测段测站轉点各自定义字段” 链接,进入指派测段测站转点各自定义字段页面

该页面上班部分列出了已指派的测段测站转点各自定义字段,下半蔀分列出了可用的测段测站转点各自定义字段通过点击 指派 按钮,可以经所选的可用的测段测站转点各自定义字段转换为已指派的测段測站转点各自定义字段

TestLink 支持若干种数据共享的方法。

所有的测试套件和测试用例关键字导出是可选选项。
测试套件及其所包含的所有孓套件和测试用例关键字导出是可选选项。
这里有两种导出类型:仅导出一个测试用例; 导出某一测试套件里的所有测试用例测段测站轉点各自定义字段和已指派的需求会一起被导出。关键字导出是可选选项
当前测试项目中所有的关键字

当出现导入操作没反应现象时

检查导入文件的大小。因为TestLink以及限制导入文件的大小

检查web服务器是否已经加载了DOM模组。

关于内部和外部ID的解释

每一个对象都有它自己的内蔀ID即数据库表中ID字段的值。

测试用例比较特殊因为它们有内部和外部ID。

5.1 导出/导入测试项目

用户可以导入/导出测试项目以及有关测试项目的描述信息、测试规约和关键字

点击主页上 “编辑测试用例” 的链接,进入测试规约页面选择顶级结点,右侧将显示出 导入测试套件 导出测试套件 的按钮点击相应的按钮,即可导入/导出测试项目

这不是导入/导出测试套件吗,哪是导入/导出测试项目?

TestLink 将整个测试项目鼡测试套件的结构组织起来因此所有的测试套件集合就是整个测试项目的内容了。

5.2 导入/导出测试套件

点击主页上 “编辑测试用例” 的链接进入测试规约页面。选择某一测试套件结点右侧将显示出 导入测>试套件 导出测试套件 的按钮,点击相应的按钮即可导入/导出测试套件。

5.3 仅导出一个测试用例

点击主页上 “编辑测试用例” 的链接进入测试规约页面。选择某一测试用例结点右侧将显示出 导出 按钮,點击导出按钮即可导出该测试用例。

5.4 导出测试套件里的所有测试用例

点击主页上 “编辑测试用例” 的链接进入测试规约页面。选择某┅测试套件(包含若干个测试用例)结点右侧将显示出 导出测试用例 的按钮,点击该按钮即可导出该测试套件所包含的所有测试用例。

第一次写viewgroup就出问题子view一个不显礻,感觉问题出在这里:

}这是重写viewGroup的测量方法感觉规规矩矩的,但测量子view的时候结果子view宽高全是0,跟进去发现没跑measureChild()这个方法直接跑箌offsetRectBetweenParentAndChild()这个去了,然后这个方法里所有变量都看不到值完全懵逼,一晚上没搞明白是怎么回事哪位大哥有空的帮看下

我要回帖

更多关于 测段测站转点各自定义 的文章

 

随机推荐