ClipDrawable代表从其他位图上截取一个“图片片段”,在XML文件中用<clip…/>元素
该元素语法为:
定义ClipDrawable对象,可指定如下三个属性:

android:drawable:指定截取的源Drawable对象
android:clipOrientation:指定截取的方向,可设置为水平截取或垂直截取
android:gravity:指定截取时的对齐方式

使用ClipDrawable对象时可以调用setLevel(int level)方法来设置截取的区域大小(最大为10000),当level为0时,截取的图片片段为空;当level为10000时,截取整张图片。
下面是一个实例来说明ClipDrawable对象的用法
可以使用ClipDrawable的这种性质控制截取图片的区域大小,让程序不断调用setLevel方法并改变level的值,达到让图片慢慢展开的效果。

先定义ClipDrawable对象
资源文件==》drawable文件夹下

上面的程序控制从中间开始截取图片,截取方向为水平截取。接下来程序将通过一个定时器来修改ClipDrawable对象的level,达到徐徐张开的效果。
代码实现==》
package com.example.myclipdrawable;

import java.util.Timer;
import java.util.TimerTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.drawable.ClipDrawable;
import android.view.Menu;
import android.widget.ImageView;

@SuppressLint(“HandlerLeak”)
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    ImageView img = (ImageView) this.findViewById(R.id.image);final ClipDrawable drawable = (ClipDrawable) img.getDrawable();final Handler hanler = new Handler(){@Overridepublic void handleMessage(Message msg){if (msg.what == 1){int value=drawable.getLevel() + 200;drawable.setLevel(value);}}};final Timer timer = new Timer();timer.schedule(new TimerTask(){@Overridepublic void run(){Message msg = new Message();msg.what = 1;hanler.sendMessage(msg);// 取消定时器if (drawable.getLevel() >= 10000){timer.cancel();}}}, 0, 300);
}@Override
public boolean onCreateOptionsMenu(Menu menu)
{// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;
}

}
布局文件:

<Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="开始展示图片"android:onClick="btnClick"/>
<Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="裁剪图片"android:onClick="btnClick"/>
<ImageViewandroid:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/drawable_clip"/>

效果图:




沈艳https://blog.csdn.net/qq_41107618/article/details/90514292

ClipDrawable资源的使用实例相关推荐

  1. android学习笔记34——ClipDrawable资源

    ClipDrawable ClipDrawable代表从其他位图上截取一个"图片片段" 在XML文件中定义ClipDrawable对象使用<clip.../>元素,该元 ...

  2. mobaxterm怎么解除sessions个数限制_详解Oracle实例囚笼--限制数据库实例使用的CPU资源...

    概述 当多个实例运行在同一台服务器上时,为了避免实例间的相互影响,从oracle 11gr2开始推出了实例囚笼的概念.实例囚笼能够限制数据库实例使用的CPU资源.使用实例囚笼,只需要设置CPU_COU ...

  3. 云资源中的低成本战斗机——竞价实例,AWS、阿里云等六家云厂商完全用户使用指南

    https://zhuanlan.zhihu.com/p/128692430 云资源中的低成本战斗机--竞价实例,AWS.阿里云等六家云厂商完全用户使用指南 原创 灵魂工作室 速石科技 2019-10 ...

  4. Android的资源引用(2)(Drawable)

    一.Drawable资源通常存放在/res/drawable目录下面. 二.图片资源 图片资源是最简单的Drawable资源.只要把*.png,*.jpg,*.gif 等格式的图片放入目录下面就可以使 ...

  5. java 3gpp转mp3_Android音频以及音频播放器开发实例

    Android 系统支持三种不同来源的音频播放: 1)本地资源 存储在应用程序中的资源,例如存储在 RAW 文件夹下的媒体文件,只能被当前应用程序访问. 2)外部资源 存储在文件系统中的标准媒体文件, ...

  6. 一篇文章读懂阿里云负载均衡性能保障型实例

    1. 什么是负载均衡性能保障型实例? 2. 性能保障型实例如何收费? 3. 性能保障型实例规格费的定价 4. 如何选择性能保障型实例? 5. 性能保障型实例的变配操作限制 6. 性能保障型实例何时收费 ...

  7. WPF XAML 资源样式模板属性存放位置

    WPF XAML 资源样式模板属性存放位置 原文:WPF XAML 资源样式模板属性存放位置 WPF的XAML 资源申明 类似HTML. 整体来说分3种 1.行类资源样式属性 1.1 行内属性 < ...

  8. 资源已存在时POST的HTTP响应代码

    我正在构建一个允许客户端存储对象的服务器. 这些对象在客户端完全构造,完整的对象ID对于对象的整个生命周期是永久的. 我已经定义了API,以便客户端可以使用PUT创建或修改对象: PUT /objec ...

  9. 如何使用 Mmcv.exe 工具来管理群集消息队列资源[转]

    INTRODUCTION 本指南介绍如何使用 Mmcv.exe 实用程序来管理 Microsoft 消息队列群集资源从一个终端服务器连接到群集的节点. 回到顶端 更多信息 您只能配置某些消息队列功能从 ...

最新文章

  1. 学python需要安装什么软件-学武汉Python培训课程需要安装什么软件?分享这10款...
  2. Automatic Summarization of Bug Reports
  3. 什么是GDT,LDT,GDTR及LDTR?
  4. 面向对象程序设计第二次作业(2)
  5. java获取b站动态列表地址_爬虫入门(三)爬取b站搜索页视频分析(动态页面,DBUtils存储)...
  6. 谁都会做:简单易行的祛斑法 - 健康程序员,至尚生活!
  7. 设置电脑眼睛保护色 多种颜色可选!
  8. C语言编写一个计算字符串长度的函数 my_strlen();
  9. 和陌陌一样,今天 Instagram 也在网页版上又迈了一步
  10. 程序员在二线城市工作爽吗?
  11. 网络诊断请将以太网电缆插入计算机咋回事,总是提示网络电缆被拔出是怎么回事?...
  12. 信用卡怎么付款给PayPal?
  13. Monyer's Game 0~5关过关方法
  14. 2022高教杯思路合集!!全国大学生数学建模竞赛
  15. maven子模块之间互相引入依赖,pom文件报错
  16. 【科研】如何在读研的道路上快速失败
  17. 2019年新SRRC认证怎么收费
  18. 微信小程序会替代原生APP吗?
  19. 在微信公众号后台进行基本配置时遇到系统发生错误,请稍后重试、token验证失败、请求URL超时的解决办法
  20. 电表远程抄表在配电房内的使用

热门文章

  1. hyk-proxy 构建于GAE之上的高性能web代理
  2. Docker 1.5新特性
  3. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)
  4. 2019年总结——看清目标,继续向前
  5. java 将图片分割成9张_将多张图片合并成一张,代码(可垂直和水平方向合并)...
  6. 【时间序列】ICML 2021丨时间序列相关研究汇总
  7. Pixel刷机 官方包 线刷
  8. border-collapse:collapse 的使用
  9. 图式详解复制带随机指针的链表
  10. do msgbox loop_do第三人称单数形式怎么写