热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在AndroidAPI28中不推荐使用view.getDrawingCache()

如何解决《在AndroidAPI28中不推荐使用view.getDrawingCache()》经验,为你挑选了2个好方法。

在android API 28中view.getDrawingCache()已被弃用.有没有更新的解决方案来生成Android中的特定视图的位图.



1> Ashvin solan..:

    使用画布

    像素Api


Canvas Example

RelativeLayout view = (RelativeLayout)findViewById(R.id.relativelayout);
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Drawable bgDrawable = view.getBackground();
if (bgDrawable != null) {
    bgDrawable.draw(canvas);
} else {
    canvas.drawColor(Color.WHITE);
}
view.draw(canvas);

PixelCopy Api

/sf/ask/17360801/

更多

https://developer.android.com/reference/android/graphics/Bitmap

https://developer.android.com/reference/android/graphics/Canvas



2> Mostafa Mono..:

我找到了一种使用PixelCopy API将视图作为位图检索的方法。二手的科特林

fun getBitmapFromView(view: View, activity: Activity, callback: (Bitmap) -> Unit) {
    activity.window?.let { window ->
        val bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888)
        val locatiOnOfViewInWindow= IntArray(2)
        view.getLocationInWindow(locationOfViewInWindow)
        try {
            PixelCopy.request(window, Rect(locationOfViewInWindow[0], locationOfViewInWindow[1], locationOfViewInWindow[0] + view.width, locationOfViewInWindow[1] + view.height), bitmap, { copyResult ->
                if (copyResult == PixelCopy.SUCCESS) {
                    callback(bitmap)
                }
                // possible to handle other result codes ...
            }, Handler())
        } catch (e: IllegalArgumentException) {
            // PixelCopy may throw IllegalArgumentException, make sure to handle it
            e.printStackTrace()
        }
    }
}


为什么Google总是必须使事情复杂化?我想要位图的时间与我以后不再使用回调调用该方法的时间相同。
这是谷歌一直在做。:)
@ TheRealChx101我今天发现了[this](/sf/ask/17360801/),我将使用它。
推荐阅读
author-avatar
捕鱼达人2602914975
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有