zoukankan      html  css  js  c++  java
  • 如何自定义ImageView并让其渐变出现(李刚老师)

    public class AlphaImageView extends ImageView
    {
        // 图像透明度每次改变的大小
        private int alphaDelta = 0;
        // 记录图片当前的透明度。
        private int curAlpha = 0;
        // 每隔多少毫秒透明度改变一次
        private final int SPEED = 300;
        Handler handler = new Handler()
        {
            @Override
            public void handleMessage(Message msg)
            {
                if (msg.what == 0x123)
                {
                    // 每次增加curAlpha的值
                    curAlpha += alphaDelta;
                    if (curAlpha > 255) curAlpha = 255;
                    // 修改该ImageView的透明度
                    AlphaImageView.this.setAlpha(curAlpha);
                }
            }
        };
        public AlphaImageView(Context context, AttributeSet attrs)
        {
            super(context, attrs);
            TypedArray typedArray = context.obtainStyledAttributes(attrs,
                    R.styleable.AlphaImageView);
            // 获取duration参数
            int duration = typedArray
                    .getInt(R.styleable.AlphaImageView_duration, 0);
            // 计算图像透明度每次改变的大小
            alphaDelta = 255 * SPEED / duration;
        }
    
        @Override
        protected void onDraw(Canvas canvas)
        {
            this.setAlpha(curAlpha);
            super.onDraw(canvas);
            final Timer timer = new Timer();
            // 按固定间隔发送消息,通知系统改变图片的透明度
            timer.schedule(new TimerTask()
            {
                @Override
                public void run()
                {
                    Message msg = new Message();
                    msg.what = 0x123;
                    if (curAlpha >= 255)
                    {
                        timer.cancel();
                    }
                    else
                    {
                        handler.sendMessage(msg);
                    }
                }
            }, 0, SPEED);
        }
    }
  • 相关阅读:
    被学长教会的高斯消元法Gauss
    KMP字符串匹配算法翔解❤
    fkwの题目(祝松松生日快乐!)
    NOI-linux下VIM的个人常用配置
    从2017年暑假到现在手打的模板↑_↑
    【テンプレート】初级数据结构
    【テンプレート】高精
    DP(第二版)
    luogu P1029 最大公约数和最小公倍数问题
    贪心题整理
  • 原文地址:https://www.cnblogs.com/linxiaojiang/p/3101818.html
Copyright © 2011-2022 走看看