ScaleDrawable的正确打开方式

来源:互联网 发布:经济增长数据 编辑:程序博客网 时间:2024/04/28 21:21

安卓中有一个ScaleDrawable类,类的说明是这样的 :

A Drawable that changes the size of another Drawable based on its current level value

OK,字面意思理解就是根据原有的Drawable创建出另一个缩/放了的Drawable。

但是,请不用忽略的一个关键字"level"!!!!!

也就是说,ScaleDrawable的缩放,并不是自动的建立在原有Drawable尺寸的基础上的。而是,需要给原有的Drawable指定一个Level,然后ScaleDrawable是在这个Level的基础上进行缩放的!!

而且,更加坑爹的事情是,在设置百分比的时候,设置的值是缩小的比例。也就是说,设置0.1,意为缩小10%!!而不是原始大小的10%!!

所以,要想让ScaleDrawable发挥作用,一定要注意上述两点:在原Drawable上设置一个Level(这个Level就相当于为SeekBar设置Max的作用是一样的),并且设置的浮点数意为缩小的比例,这个值越小,图形越大,值越大,图形越小。

代码参考:

Drawable drawable = getResources().getDrawable(R.drawable.test);//原始图像drawable.setLevel(100);//设置levelScaleDrawable sd = new ScaleDrawable(d,Gravity.Center,1.0f,1.0f);iv.setImageDrawable(sd);

上述这段代码的意思是,在iv中放一个图像。这个图像是一个缩小了的drawable,它比原始图像在长和宽上都缩小10%,也就是原始图像81%大小的图像。

如果使用ScaleDrawable不设置Level的时候,默认值为0,根据0进行缩放是得不到缩放后的图像的。因此,如果不设置level,根本看不到任何缩放后的图像。




0 0
原创粉丝点击