ClipDrawable资源的使用实例
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资源的使用实例相关推荐
- android学习笔记34——ClipDrawable资源
ClipDrawable ClipDrawable代表从其他位图上截取一个"图片片段" 在XML文件中定义ClipDrawable对象使用<clip.../>元素,该元 ...
- mobaxterm怎么解除sessions个数限制_详解Oracle实例囚笼--限制数据库实例使用的CPU资源...
概述 当多个实例运行在同一台服务器上时,为了避免实例间的相互影响,从oracle 11gr2开始推出了实例囚笼的概念.实例囚笼能够限制数据库实例使用的CPU资源.使用实例囚笼,只需要设置CPU_COU ...
- 云资源中的低成本战斗机——竞价实例,AWS、阿里云等六家云厂商完全用户使用指南
https://zhuanlan.zhihu.com/p/128692430 云资源中的低成本战斗机--竞价实例,AWS.阿里云等六家云厂商完全用户使用指南 原创 灵魂工作室 速石科技 2019-10 ...
- Android的资源引用(2)(Drawable)
一.Drawable资源通常存放在/res/drawable目录下面. 二.图片资源 图片资源是最简单的Drawable资源.只要把*.png,*.jpg,*.gif 等格式的图片放入目录下面就可以使 ...
- java 3gpp转mp3_Android音频以及音频播放器开发实例
Android 系统支持三种不同来源的音频播放: 1)本地资源 存储在应用程序中的资源,例如存储在 RAW 文件夹下的媒体文件,只能被当前应用程序访问. 2)外部资源 存储在文件系统中的标准媒体文件, ...
- 一篇文章读懂阿里云负载均衡性能保障型实例
1. 什么是负载均衡性能保障型实例? 2. 性能保障型实例如何收费? 3. 性能保障型实例规格费的定价 4. 如何选择性能保障型实例? 5. 性能保障型实例的变配操作限制 6. 性能保障型实例何时收费 ...
- WPF XAML 资源样式模板属性存放位置
WPF XAML 资源样式模板属性存放位置 原文:WPF XAML 资源样式模板属性存放位置 WPF的XAML 资源申明 类似HTML. 整体来说分3种 1.行类资源样式属性 1.1 行内属性 < ...
- 资源已存在时POST的HTTP响应代码
我正在构建一个允许客户端存储对象的服务器. 这些对象在客户端完全构造,完整的对象ID对于对象的整个生命周期是永久的. 我已经定义了API,以便客户端可以使用PUT创建或修改对象: PUT /objec ...
- 如何使用 Mmcv.exe 工具来管理群集消息队列资源[转]
INTRODUCTION 本指南介绍如何使用 Mmcv.exe 实用程序来管理 Microsoft 消息队列群集资源从一个终端服务器连接到群集的节点. 回到顶端 更多信息 您只能配置某些消息队列功能从 ...
最新文章
- 学python需要安装什么软件-学武汉Python培训课程需要安装什么软件?分享这10款...
- Automatic Summarization of Bug Reports
- 什么是GDT,LDT,GDTR及LDTR?
- 面向对象程序设计第二次作业(2)
- java获取b站动态列表地址_爬虫入门(三)爬取b站搜索页视频分析(动态页面,DBUtils存储)...
- 谁都会做:简单易行的祛斑法 - 健康程序员,至尚生活!
- 设置电脑眼睛保护色 多种颜色可选!
- C语言编写一个计算字符串长度的函数 my_strlen();
- 和陌陌一样,今天 Instagram 也在网页版上又迈了一步
- 程序员在二线城市工作爽吗?
- 网络诊断请将以太网电缆插入计算机咋回事,总是提示网络电缆被拔出是怎么回事?...
- 信用卡怎么付款给PayPal?
- Monyer's Game 0~5关过关方法
- 2022高教杯思路合集!!全国大学生数学建模竞赛
- maven子模块之间互相引入依赖,pom文件报错
- 【科研】如何在读研的道路上快速失败
- 2019年新SRRC认证怎么收费
- 微信小程序会替代原生APP吗?
- 在微信公众号后台进行基本配置时遇到系统发生错误,请稍后重试、token验证失败、请求URL超时的解决办法
- 电表远程抄表在配电房内的使用