zoukankan      html  css  js  c++  java
  • ClipDrawable 资源

    ClipDrawable 代表从其他位图上截取的一个“图片片段”。
    示例:
    main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <ImageView  
        android:id="@+id/image"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:scaleType="fitStart"
        android:src="@drawable/my_clip"
        />
    </LinearLayout>
    my_clip.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <clip xmlns:android="http://schemas.android.com/apk/res/android" 
        android:drawable="@drawable/shuangta" 
        android:clipOrientation="horizontal" 
        android:gravity="center"> 
    </clip>
    因为 ClipDrawble 对象可调用 setLevel(int level)控制截取图片的部分,因此本示例只要设 置一个定时器,让程序不断调用 ClipDrawble 的 setLevel(int level)方法即可实现图片徐徐展开 的效果。
     
    ClipDrawableTest.java
    package org.crazyit.res;
    
    import java.util.Timer;
    import java.util.TimerTask;
    
    import org.crazyit.res.R;
    
    import android.app.Activity;
    import android.graphics.drawable.ClipDrawable;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.widget.ImageView;
    
    /**
     * Description:
     * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a>
     * <br/>Copyright (C), 2001-2014, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class ClipDrawableTest extends Activity
    {
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.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)
                {
                    // 如果该消息是本程序所发送的
                    if (msg.what == 0x1233)
                    {
                        // 修改ClipDrawable的level值
                        drawable.setLevel(drawable.getLevel() + 200);
                    }
                }
            };
            final Timer timer = new Timer();
            timer.schedule(new TimerTask()
            {
                @Override
                public void run()
                {
                    Message msg = new Message();
                    msg.what = 0x1233;
                    // 发送消息,通知应用修改ClipDrawable对象的level值。
                    handler.sendMessage(msg);
                    // 取消定时器
                    if (drawable.getLevel() >= 10000)
                    {
                        timer.cancel();
                    }
                }
            }, 0, 300);
        }
    }
    ScreenShot:双塔图片逐渐从中间向两边展开。
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    类,对象和方法
    jmeter对接口测试入参进行MD5加密
    Jmeter配置代理进行录制
    MYSQL——having 和 where的区别
    MySQL
    Python——面试编程题
    mysql——面试题
    Vue——解决跨域请求问题
    Vue——axios网络的基本请求
    ES6 数组map(映射)、reduce(汇总)、filter(过滤器)、forEach(循环迭代)
  • 原文地址:https://www.cnblogs.com/AndyGe/p/3436848.html
Copyright © 2011-2022 走看看