我可以使用Glide在画布上绘制精致/所需的位图吗?

时间:2017-10-13 09:24:26

标签: android canvas bitmap android-glide

如何使用Glide Library获取位图,因为我想在画布上绘制该位图图像。 Glide只允许我将图像添加到ImageView。

有没有办法让我可以通过Glide获得精确的位图,以便我可以将它绘制到画布上。

目前我正在使用

Bitmap bitmapImage = BitmapFactory.decodeResource(getResources(), wallpaper_image_id);

我收到此错误

java.lang.OutOfMemoryError: Failed to allocate a 43776012 byte allocation with 16767008 free bytes and 40MB until OOM

1 个答案:

答案 0 :(得分:1)

也许目标就是你需要的。看看Here

Glide.with(yourApplicationContext))
    .load(youUrl)
    .asBitmap()
    .into(new SimpleTarget<Bitmap>(myWidth, myHeight) {
        @Override
        public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
            // Do something with bitmap here.
        }
    };

onResourceReady内,您已准备好将位图加载到您想要的位置。

修改

您的应用崩溃是因为您需要在ui线程中运行代码。试试这个:

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(context.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {....} // Your code goes inside the run method
};
mainHandler.post(myRunnable);