• 两种获取view的bitmap的方法


    在开发中有时候需要获取到一个view当前的图像信息,这个view可能是一个单一的view,也可能是多个view组成的ViewGroup,所以不能通过简单的getBackground的方法获取到这个图像信息。下面提供两个比较方便方法可以获取这个信息

    • 通过canvas获取
       /**
         * 通过canvas复制view的bitmap
         */
        private void copyByCanvas() {
            int width = mOriginImageView.getWidth();
            int height = mOriginImageView.getHeight();
            Bitmap bp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(bp);
            mOriginImageView.draw(canvas);
            canvas.save();
            mCopyImageView1.setBackground(new BitmapDrawable(bp));
        }
    • 通过drawingCache获取
        /**
         * 通过drawingCache获取bitmap
         */
        private void copyByDrawingCache() {
            mOriginImageView.setDrawingCacheEnabled(true);
            mOriginImageView.buildDrawingCache(true);
            final Bitmap bp = mOriginImageView.getDrawingCache();
            if(bp != null){
                Bitmap finalBp = Bitmap.createBitmap(bp);
                mOriginImageView.setDrawingCacheEnabled(false);
                mCopyImageView2.setBackground(new BitmapDrawable(finalBp));
            }
        }
  • 相关阅读:
    洛谷P2886 [USACO07NOV]Cow Relays G
    CF1344F Piet's Palette
    CF1344E Train Tracks
    CF1342F Make It Ascending
    LOJ6049 拍苍蝇
    test20200430 最长路径
    LG1742 最小圆覆盖 和 LOJ6360 复燃「恋之埋火」
    LOJ6358 前夕
    LOJ6485 LJJ学二项式定理
    LOJ2882 两个人的星座
  • 原文地址:https://www.cnblogs.com/summerpxy/p/13648319.html
Copyright © 2020-2023  润新知