我同时使用两个库来处理照片(glide和gravityView)

时间:2018-07-28 08:55:02

标签: java android

我同时使用两个库来处理照片。

1.implementation'com.github.bumptech.glide:glide:4.7.1' 注解处理器'com.github.bumptech.glide:compiler:4.7.1'

https://github.com/bumptech/glide) 2.编译“ co.gofynd.library:gravity-view:1.0” (https://github.com/gofynd/gravity-view

我想使用Glide库从互联网上获取照片,然后使用 重力库 但是库的输入是imageview和int drawable。 我无法获取int可绘制的输入 我的重力库代码:

    private void setGravityMotion()
    {
       gravityView = GravityView.getInstance(this);
       if (!gravityView.deviceSupported())
       {
          return;
       } else
       {
         gravityView.setImage(imageView, R.drawable.background)
            .center();
         Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
       }
    }

我应该怎么做而不是R​​.drawable.background?

3 个答案:

答案 0 :(得分:1)

请检查您需要使用的可绘制图形的屏幕截图。

enter image description here

private void setGravityMotion()
    {
       gravityView = GravityView.getInstance(this);
       if (!gravityView.deviceSupported())
       {
          return;
       } else
       {
         gravityView.setImage(imageView, R.drawable.ic_3d)
            .center();
         Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
       }
    }

答案 1 :(得分:1)

您可能会这样使用:

ViewTarget<ImageView, Bitmap> viewTarget =  Glide.with(activity)
                                                 .asBitmap()
                                                 .load("URL")
                                                 .into(imageView);
Drawable drawable = viewTarget.getView().getDrawable(); // Declare according your scope 


private void setGravityMotion() {
   gravityView = GravityView.getInstance(this);
   if (!gravityView.deviceSupported())
   {
      return;
   } else
   {
     gravityView.setImage(imageView, drawable/*Place here*/)
        .center();
     Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show();
   }
}

我还没有测试过,希望它能工作。

答案 2 :(得分:1)

您使用的库支持两种类型的图像

  1. 资源诠释
  2. 位图图像

您正在使用不能与Glide一起使用的第一种类型。而是使用Glide库创建位图,然后将其加载到库中。

您的代码将如下所示

Glide
.with(getApplicationContext())
.load("https://www.google.es/images/srpr/logo11w.png")
.asBitmap()
.into(new SimpleTarget<Bitmap>(100,100) {
    @Override
    public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
        gravityView.setImage(imageView, resource)
    }
});

我相信Glide 4.0有一种获取位图的方法,但是仍然可以使用