4Manuals

  • PDF Cloud HOME

如何在onCreate中使用滑行获取位图? Download

    如何在Android中使用WebRTC缩放相机 Android 10,API29:在应用程序文件夹中使用C ++库编写文件会使应用程序崩溃 如何将动态值传递给渐变xml 加载数据并推送到未显示的RecyclerView中 调用Model类的函数时出现java.lang.NullPointerException 从网络加载图像时,“接收到完整的报头之前关闭连接 Ionic 3错误:“缺少文件google-services.json。没有它,Google Services插件将无法运行。”在离子科尔多瓦建立/准备Android androidx.appcompat.view.menu.MenuItemImpl无法转换为android.widget.TextView 从Firebase发送推送通知不起作用 Ljava / applet / Applet上的Android LDAP / NoClassDefFoundError;

我正在使用mvvm模型。因此,我首先要做的是从改造中获取包含url和其他内容的数据。 第二个是从网址获取图像并在执行第一个过程后通知Viewpager。 我做了第一个。但是当我尝试第二个过程时,发生了错误  java.lang.IllegalArgumentException: You must call this method on a background thread

我推荐了该网站http://bumptech.github.io/glide/doc/getting-started.html#background-threads 在后台线程上使用滑行。我不必在观察中使用Asynctask来约束开发。我该如何解决第二个过程?

onCreate 

 detailViewModel.getIndexItem().observe(this, Observer<DetailModel>(){  
                t->

            binding.item = t

            image_list = binding.item.thumbnail_list_320.toString().split("#")
            for(image in image_list) {
                val futureTarget: FutureTarget<Bitmap> = Glide.with(context)
                    .asBitmap()
                    .load(image)
                    .submit(500, 500)

                val bitmap = futureTarget.get()
                bitmaps.add(bitmap).apply {
                    if(this){
                        viewPagerAdapter.notifyDataSetChanged()
                        transitionLayout.visibility=View.GONE                             
                        detailLayout.visibility=View.VISIBLE
                    }
                }
            }
        })

2 个答案:

答案 0 :(得分:0)

在Java中简单优雅:

encryptAESKey

与Bitmap bitmap; Glide.with(mContext).load(PHOTOURL).apply(options).listener(new RequestListener<Drawable>() { @Override public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { bitmap = resource; } }).into(IMAGEVIEW); 。请注意,它是异步的,需要一些时间来加载位图。希望对您有所帮助。最好的问候。

答案 1 :(得分:0)

如果要在UI Thread上获取位图,请执行以下操作,您可以尝试

detailViewModel.getIndexItem().observe(this, Observer<DetailModel>(){
            t->

        binding.item = t

        image_list = binding.item.thumbnail_list_320.toString().split("#")
        for(image in image_list) {
            Glide.with(this)
                .asBitmap()
                .override(500, 500)
                .load("image url")
                .into( object: CustomTarget<Bitmap>() {
                    override fun onResourceReady(
                        bitmap: Bitmap,
                        transition: Transition<in Bitmap>?
                    ) {
                        // UI Thread
                        Log.e(TAG, "$bitmap")
                        bitmaps.add(bitmap).apply {
                            if(this){
                                viewPagerAdapter.notifyDataSetChanged()
                                transitionLayout.visibility=View.GONE
                                detailLayout.visibility=View.VISIBLE
                            }
                        }
                    }

                    override fun onLoadCleared(placeholder: Drawable?) {

                    }

                })

        }
    })



Similar searches
    Postgres-在返回多行后选择一行 如何连接到postgreSQL? 如何在春季启动中一对多处理带有json响应的multipartfiles Samsung SR-40RMB Refrigerator User Manual 如何计算定义了自定义财务日历的两个日期之间的月数?