ClipDrawable

ClipDrawable_第1张图片
概述

其他Draw文章参考:
Android中Drawable整体介绍

前言

Drawable根据Drawable的当前级别值剪切另一个Drawable。 您可以控制Drawable的子对象的宽度和高度,以及重力来控制放置在整个容器中的位置。 通常通过使用setLevel()增加drawable的级别来实现诸如进度条之类的东西。

在 XML 文件中定义的对其他可绘制对象进行裁剪(根据其当前级别)的可绘制对象。您可以根据级别以及用于控制其在整个容器中位置的重力,来控制子可绘制对象的裁剪宽度和高度。通常用于实现进度栏之类的项目。

注意

默认级别为 0,即完全裁剪,使图像不可见。当级别为 10,000 时,图像不会裁剪,而是完全可见。

这边涉及到了一个裁剪方向与裁剪的位置,比如设置left,就是将对象在容器左边缘,那么就是裁剪的右边的
,如果方向是水平的话,可以达到一步步展示图片的效果。 如果是vertical 加 left属性的话,你设置成动态改变level水平,你会发现是从中间最开始出来的,加的left属性,再删除掉时候也是从中间开始出来,

所谓的裁剪,默认的是0,那么被处理的图片就看不见,level越来越高,那么,可以展示的图片就越来越多了。裁剪的意思:裁掉的你就看不见了。

增大级别可减少裁剪量并慢慢显示图像。此处的级别为 7000:

如果是静态的使用,感觉没啥意思,但是如果是动态的修改level,那么就会出现动态效果了。

做成动态效果之后,会有不一样的感觉。也就是说不一定通过动画就可以实现。

语法



定义裁剪可绘制对象。这必须是根元素。
属性:
xmlns:android
字符串。必备。定义 XML 命名空间,其必须是 "http://schemas.android.com/apk/res/android"。

android:drawable

可绘制对象资源。必备。引用要裁剪的可绘制对象资源。

android:clipOrientation

关键字。裁剪方向。
可以选择:

horizontal : 水平裁剪可绘制对象
vertical : 垂直裁剪可绘制对象

android:gravity

关键字。指定可绘制对象中要裁剪的位置。
必须是以下一个或多个(用 '|' 分隔)常量值:


ClipDrawable_第2张图片
参照表

测试




XML文件中

  

代码中:

        ImageView imageView = (ImageView) findViewById(R.id.imageView_test);
        ClipDrawable clipDrawable = (ClipDrawable) imageView.getBackground();
        clipDrawable.setLevel(5000);

效果图:


ClipDrawable_第3张图片
水平方向剪切了一半

你可能感兴趣的:(ClipDrawable)