zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【题解】Luogu1308 统计单词数
    【题解】Luogu1739 表达式括号匹配
    等待
    封城日记
    【题解】luoguP5717三角形分类
    【题解】LuoguP1059明明的随机数
    我是一个跳表
    【JVM故事】了解JVM的结构,好在面试时吹牛
    【JVM故事】一个Java字节码文件的诞生记
    Java多线程通关——基础知识挑战
  • 原文地址:https://www.cnblogs.com/tianzhijiexian/p/3889951.html
Copyright © 2011-2022 走看看