【问题标题】:How to load URL image in android wear?如何在 android wear 中加载 URL 图片?
【发布时间】:2017-01-06 05:03:57
【问题描述】:

现在我正在使用Glide-library 在 Android Wear 中加载图像。它在大多数情况下都不会加载图像。但是,它有时会加载图像。不知道我的代码出了什么问题。

注意 Wear通过蓝牙连接到设备,我通过Broadcast Receiver从手机成功获得了Android Wear中Webservice的JSON响应。除图像外,所有数据均在佩戴中正确显示。

Glide.with(mContext)
   .load("http://www.hanamoflorist.ca/images/uploads/Spring5InchesCubeVaseArrangement$45.00.jpg")
      .listener(new RequestListener<String, GlideDrawable>() {

        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            Log.e("exception in image", "" + e);
            Toast.makeText(mContext, "" + e, Toast.LENGTH_LONG).show();
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            return false;
        }
    }).error(R.drawable.ic_placeholder_image)
        .into(((ItemViewHolder) holder).ivCardImage);

【问题讨论】:

    标签: android bluetooth wear-os android-glide


    【解决方案1】:

    我认为您应该使用 DaVinci 在可穿戴设备中加载图像,

    DaVinci.with(context).load("Your Url").into(imageView);
    

    确保您使用与库相同的 playservices 版本,

    您可以通过将其添加到您的 gradle 来集成它:

    穿戴:

    compile ('com.github.florent37:davinci:1.0.3@aar'){
        transitive = true
    }
    

    手机:

    compile ('com.github.florent37:davincidaemon:1.0.3@aar'){
         transitive = true
    }
    

    希望你能得到你想要的。

    【讨论】:

      【解决方案2】:

      问题是由于套接字超时...

      您可以使用 Glide 本身来解决它。只需要将 Glide 与 OKHttp3 一起使用,并为 OkHttpClient 设置 Timeout Limit。

      在你的模块依赖中

      compile 'com.github.bumptech.glide:glide:3.7.0'
      compile ('com.github.bumptech.glide:okhttp3-integration:1.4.0'){
          exclude group: 'glide-parent'
      }
      

      自定义滑行设置

      public class MyGlideModule implements GlideModule {
         @Override
         public void applyOptions(Context context, GlideBuilder builder) {
      
         }
      
         @Override
         public void registerComponents(Context context, Glide glide) {
      
             OkHttpClient.Builder builder = new OkHttpClient.Builder();
      
             // set your timeout here
             builder.readTimeout(30, TimeUnit.SECONDS);
             builder.writeTimeout(30, TimeUnit.SECONDS);
             builder.connectTimeout(30, TimeUnit.SECONDS);
             OkHttpUrlLoader.Factory factory = new    OkHttpUrlLoader.Factory(client);
             glide.register(GlideUrl.class, InputStream.class, factory);
         }
      }
      

      在清单中放下面的代码

       <meta-data
              android:name="YourPath.MyGlideModule"
              android:value="GlideModule" />
      

      【讨论】:

        猜你喜欢
        • 2016-06-20
        • 2012-12-20
        • 2014-12-23
        • 2015-03-08
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多