• 如何自定义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);
        }
    }
  • 相关阅读:
    MapReduce&Yarn
    Linux网络配置问题
    Linux命令总结
    Hadoop优化&新特性
    Zookeeper
    idea中修改注释颜色
    Linuxbash未找到命令问题
    Hadoop3.0入门
    HDFS
    SpringBoot
  • 原文地址:https://www.cnblogs.com/linxiaojiang/p/3101818.html
Copyright © 2020-2023  润新知