android的散知识

LayoutTransition的四种状态动画:


APPEARING——出现的VIEW动画

DISAPPEARING——消失的VIEW动画

CHANGE_APPEARING——出现时位置改变的VIEW动画

CHANGE_DISAPPEARING——消失时位置改变的VIEW动画


前两个接受ObjectAnimator的动画

后两个接受ValueAnimator的动画


Canvas的clip第二个参数 Region.Op


DIFFERENCE——抛开裁剪区域的区域
REPLACE——裁剪区域
REVERSE_DIFFERENCE——是第二次不同于第一次的部分显示
INTERSECT——交集显示
UNION——全部显示
XOR——补集 


使用自定义attires中format值


reference——引用,就是一切“@”开头的资源均为引用,在TypeArray中的getResourceId()方法来获取其id,通过Resources来获取具体的值


string——字符串


float——浮点数,如1.0


color——颜色,#FFFF0000


boolean——布尔值,true or false


enum——枚举,例如"<Activity>"标签中的"screenOrientation"属性,分为"portrait"和"landscape"等等


dimension——尺寸,后面有"dp"、"px"的均为尺寸


fraction——百分数,后面有"%"的均为fraction,例如"<translate>"标签中的"fromXDelta"属性


flag——位或运算,可以为十六进制也可以为整数等等,可以进行位运算,主要作用可以进行位运算来标识特性


integer——整数


ViewGroup与其中View的OnMeasure()与OnLayout()调用顺序


不管是OnMeasure()还是OnLayout()都是先调用View后调用ViewGroup


结论:先确定子View的大小与位置,再确定ViewGroup的大小与位置


从子View获得父ViewGroup和父ViewGroup获得子View


1.如果从ViewGroup中获得其中的子View的话,常用的几种


getChildAt(int index)——index为索引,意为获取索引位置的View


findViewById(int id)——id为想要获取的View的ID,而View的ID是由继承的方法getId()来决定的


findViewWithTag(Object tag)——tag为想要获取的View的标签,一般来说标签为String,不过此方法不建议使用,因为String容易遗忘,也不容易操作


2.如果从子View获得其父ViewGroup的话,通过调用方法


getParent()——获得ViewParent对象,然后强制向上转型即可


OnMeasure(int widthMeasureSpec,int heightMeasureSpec)的两个参数含义


OnMeasure()这个函数经常被重写,主要是用来测量View的大小,现在来说下其中参数的作用:


1.可以通过MeasureSpec.getSize()获得从父ViewGroup中传递过来的实际宽(高)


2.可以通过MeasureSpec.getMode()获得测量模式


实现原理是位运算


其中测量模式分为这三种:


1.EXACTLY——表示父ViewGroup希望子View的精确值


2.AT_MOST——表示的大小最大为Size


3.UNSPECIFIED——表示父ViewGroup不限制子View的大小(到现在都没有用到过)


由于3没用到过,所以这里只说一下1和2.


1.如果在这个函数中给LayoutParams的宽和高都设置了具体值,那么在最后调用的父类OnMeasure()函数中要传递模式为EXACTLY的测量说明表示传递的是精确的值,如:

super.OnMeasure(MeasureSpec.makeMeasureSpec(width,MeasureSpec.EXACTLY),MeasureSpec.makeMeasureSpec(height,MeasureSpec.EXACTLY))


2.比如说你修改了LayoutParams的宽和高为WRAP_CONTENT的话,这里你就需要用

AT_MOST模式,例子如

super.OnMeasure(MeasureSpec.makeMeasureSpec(width,MeasureSpec.WRAP_CONTENT),MeasureSpec.makeMeasureSpec(height,MeasureSpec.WRAP_CONTENT))


ImageView对于图片的缩放


默认为保持比例放大图片,如果想使图片充满整个View的话,在xml下使用android:scaleType="fitXY",动态设置为setScaleType(ScaleType.FIT_XY)


WebView读取assets文件夹内的html文件


如果没有Assets文件夹的话,那么要创建一个assets文件.我用的是android studio,需要在src/main下创建一个assets文件夹,然后可以查看app.iml文件中,<option>标签内name为

ASSETS_FOLDER_RELATIVE_PATH的值是否为"/src/main/assets"
之后就可以在assets文件夹内创建html文件,WebView加载的URL为"file:///android_asset/xxx.html",其中“xxx.html”就是你创建的html文件



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值