Android 资源简介(四) ClipDrawable
16lz
2021-01-23
ClipDrawable 代表从其他位图上截取的一部分图片内容。
在 XML 中定义 ClipDrawable 对象使用
- android:drawable:指定作为 ClipDrawable 元素的截取源的 Drawable 对象;
- android:clipOrientation:指定截取的方向,可以设置水平或者垂直截取;
- 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讲义(第2版)》
更多相关文章
- Android处理大图片
- 制作 Nine-Patch 图片
- 对android里布局文件当中的TextView对象设置事件监听,但是不响应
- Android:设置圆形头像,Android截取圆形图片
- (4.1.21.4)Android Handler 异步消息处理机制的妙用 创建强大的图
- [转]Android 应用初始化及窗体事件(按键)的分发 [此博文包含图片]