ClipDrawable 代表从其他位图上截取的一部分图片内容。

在 XML 中定义 ClipDrawable 对象使用 元素,该元素可以包含如下的属性:

  1. android:drawable:指定作为 ClipDrawable 元素的截取源的 Drawable 对象;
  2. android:clipOrientation:指定截取的方向,可以设置水平或者垂直截取;
  3. android:gravity:指定截取时的对齐方式。

使用 ClipDrawable 对象时可以调用 setLevel(int level) 方法来设置截取的区域的大小,level 取值为 0~10000,为 0 时,截取的图片为空,为 10000 时,截取整张图片。

下面是一个简单的使用示例。

自定义的 ClipDrawable 对象:

<?xml version="1.0" encoding="utf-8"?>

主布局文件的代码如下:

<?xml version="1.0" encoding="utf-8"?>    

主程序文件的代码如下:

package com.toby.personal.testlistview;import android.graphics.drawable.ClipDrawable;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.widget.ImageView;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity {    final private static String TAG = "Toby_Test";    final private static int MsgWhat = 20170406;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        final ImageView imageView = (ImageView) findViewById(R.id.imageClip);        final ClipDrawable clipDrawable = (ClipDrawable) imageView.getDrawable();        final Handler handler = new Handler() {            @Override            public void handleMessage(Message msg) {                if (msg.what == MsgWhat) {                    clipDrawable.setLevel(clipDrawable.getLevel() + 200);                }                super.handleMessage(msg);            }        };        final Timer timer = new Timer();        timer.schedule(new TimerTask() {            @Override            public void run() {                Message msg = new Message();                msg.what = MsgWhat;                handler.sendMessage(msg);                if (clipDrawable.getLevel() >= 10000) {                    timer.cancel();                }            }        }, 0, 300);    }}

上面示例的运行效果如下:

Android 资源简介(四) ClipDrawable_第1张图片 显示效果

参考文献:《疯狂Android讲义(第2版)》

更多相关文章

  1. Android处理大图片
  2. 制作 Nine-Patch 图片
  3. 对android里布局文件当中的TextView对象设置事件监听,但是不响应
  4. Android:设置圆形头像,Android截取圆形图片
  5. (4.1.21.4)Android Handler 异步消息处理机制的妙用 创建强大的图
  6. [转]Android 应用初始化及窗体事件(按键)的分发 [此博文包含图片]

随机推荐

  1. android进行主题切换不重启整个应用(styl
  2. 【Android(安卓)内存优化】Bitmap 硬盘缓
  3. 【Android】Android江湖
  4. android告别篇-对于源码我的一些看法
  5. 2019零基础学Android第0课——零基础怎么
  6. 谁说Android的动画不廉价(一)之项目分层
  7. android 中Xml里面的id重名问题
  8. Android中Drawable适配介绍
  9. 【Android实战之旅 001】AsyncTask异步操
  10. Android中使用Handler和异步任务(AsyncTac