ClipDrawable属性介绍
ClipDrawable代表从其它位图上截取一个"图片片段",XML中的根元素为<clip.../>,截取的方向由clipOrientation控制
- <?xml version="1.0" encoding="utf-8"?>
- <clip
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:drawable="@drawable/drawable_resource"
- android:clipOrientation=["horizontal" | "vertical"]
- android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |
- "fill_vertical" | "center_horizontal" | "fill_horizontal" |
- "center" | "fill" | "clip_vertical" | "clip_horizontal"] />
android:clipOrientation有两个属性,默认为horizontal
android:gravity有两个属性,默认为left
使用时可以用ClipDrawable的setLevel(int level)方法来设置截取图片的区域大小,当level为0,就是空;为10000时,截取整个图片。
下面是通过这个对象来实现图片缓缓展开的效果。
转自:http://blog.csdn.net/jiaruihua_blog/article/details/12276215
思路:
1.在xml中写clip标签,在drawable中放入一个图片
2.在布局中放一个ImageView,src选择这个xml文件
3.在代码中用Imageview的findViewById()找到imageview对象
4.通过 final ClipDrawable drawable = (ClipDrawable)imageview.getDrawable(); 得到ClipDrawable对象
5.通过Timer和Handler结合来改变截取图片的大小,这里要通过setLevel()来做
6.当ClipDrawable.getLevel() >= 10000时结束截取,因为这时已经截取了全部图片
代码:
- <?xml version="1.0" encoding="utf-8"?>
- <clip xmlns:android="http://schemas.android.com/apk/res/android"
- android:drawable="@drawable/gril"
- android:clipOrientation="horizontal"
- android:gravity="center">
- </clip>
layout
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".MainActivity" >
- <ImageView
- android:id="@+id/image"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_alignParentLeft="true"
- android:layout_alignParentTop="true"
- android:scaleType="fitStart"
- android:src="@drawable/clip_style"
- />
- </RelativeLayout>
java
- package com.example.clipdrawable;
- import java.util.Timer;
- import java.util.TimerTask;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.app.Activity;
- import android.graphics.drawable.ClipDrawable;
- import android.view.Menu;
- import android.widget.ImageView;
- public class MainActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- ImageView imageView = (ImageView) findViewById(R.id.image);
- //获取图片所显示的ClipDrawable对象
- final ClipDrawable drawable = (ClipDrawable) imageView.getDrawable();
- final Handler handler = new Handler(){
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- if (msg.what==0x123) {
- /**setlevel()设置图片截取的大小
- * 修改ClipDrawable的level值,level值为0--10000;
- * 0:截取图片大小为空白,10000:截取图片为整张图片;
- */
- drawable.setLevel(drawable.getLevel()+200);
- }
- }
- };
- final Timer timer = new Timer();
- timer.schedule(new TimerTask() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- Message msg = new Message();
- msg.what = 0x123;
- handler.sendMessage(msg);
- if (drawable.getLevel()>=10000) {
- timer.cancel();
- }
- }
- }, 0,300);
- }
- }
详细参考:
http://blog.csdn.net/lee576/article/details/7827676
http://blog.csdn.net/jiaruihua_blog/article/details/12276215
ClipDrawable属性介绍的更多相关文章
- DIV+CSS布局中主要CSS属性介绍
Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能 ...
- Android使用Drawable资源之使用ClipDrawable资源 实现进入条
以前我自定义的进度条(就是咱们现在工程中用的)是从android的源码中扒出来的一个XML,然后把里面的图片给替换了.一直不知道它的具体原理是什么. 今天得空研究了一下,发现它的原理其实就是用的and ...
- ClipDrawable 实现图片渐变现实
clip.xml <?xml version="1.0" encoding="utf-8"?><clip xmlns:android=&quo ...
- location.hash属性介绍
location.hash属性介绍 例如URL: http://wwww.a.com/index#rhythmk 通过location.hash 我们将获取到 #rhythmk. 默认浏览器会滚动至i ...
- Autocomplete:属性介绍、firefox中文支持问题
如有问题,请前往 http://www.cnblogs.com/dreamowneryong/p/4953911.html 原文评论交流 一,属性介绍 * minChars (Number) 在触发a ...
- android学习笔记34——ClipDrawable资源
ClipDrawable ClipDrawable代表从其他位图上截取一个“图片片段” 在XML文件中定义ClipDrawable对象使用<clip.../>元素,该元素的语法为: 以上语 ...
- Intent的属性介绍
在Android系统的设计中有四大组件:Activity,Service,BroadcastReceiver,ContentProvider.Intent可以被应用于ContentProvider之外 ...
- RelativeLayout常用属性介绍
RelativeLayout常用属性介绍 转自: http://www.douban.com/note/97496783/ 下面介绍一下RelativeLayout用到的一些重要的属性: 第一类:属性 ...
- ClipDrawable 资源
ClipDrawable 代表从其他位图上截取的一个“图片片段”. 示例: main.xml <?xml version="1.0" encoding="utf-8 ...
随机推荐
- Ubuntu出现apt-get: Package has no installation candidate问题
今天在安装 vim 的时候出现了 Package 'vim' has no installation candidate的问题 解决方法如下:# apt-get update# apt-get upg ...
- CF 554A 字符串水题
给出一个字符串,问再加入一个字母,最多能形成多少种字符串 inputaoutput51inputhioutput76 # include <iostream> # include < ...
- 洛谷P2017 [USACO09DEC]晕牛Dizzy Cows [拓扑排序]
题目传送门 晕牛Dizzy Cows 题目背景 Hzwer 神犇最近又征服了一个国家,然后接下来却也遇见了一个难题. 题目描述 The cows have taken to racing each o ...
- mini-css-extract-plugin简介
将css单独打包成一个文件的插件,它为每个包含css的js文件都创建一个css文件.它支持css和sourceMaps的按需加载. 目前只有在webpack V4版本才支持使用该插件 和extract ...
- JAVA 类和对象基础知识详解
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 和C++一样,JAVA也是一门面向对象的语言,其基础和核心是类和对象.而面向对象的思想是来源与显示生 ...
- 3D游戏开发之UE4中的集合:TSet容器
好久没有更新了,最近一直在老家过年,网络不通的,今天才有时间更新一集. 一.TSet<T>是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这一节,我们就介绍集合容 ...
- Atom-同步设置
Atom-同步设置 参考博客 CNBLOG First 首先呢,如果我们想要通过Atom的设置和插件的话,我们需要这个一个Atom插件. PS: 因为Gist被墙的原因,所以需要***才行,我挂了ss ...
- BZOJ.1926.[SDOI2010]粟粟的书架(前缀和 主席树 二分)
题目链接 题意: 在给定矩形区域内找出最少的数,满足和>=k.输出数的个数.两种数据范围. 0~50 注意到(真没注意到...)P[i,j]<=1000,我们可以利用前缀和预处理. num ...
- Asyncio中Lock部分的翻译
Asyncio中Lock部分的翻译 Locks class asyncio.Lock(*, loop=None) 原始锁的对象. 这个基础的锁是一个同步化的组件,当它上锁的时候就不属于典型的协程了(译 ...
- 【转载】VC GDI 像素转厘米(英寸)
[转载]http://blog.sina.com.cn/s/blog_638dd78201018663.html 函数原型:int GetDeviceCaps(int nIndex); 常用的参数有( ...