2017-06-18 17 views
0

インターネットから画像をダウンロードして壁紙を設定しようとしていますが、「get()メソッド」が見つからないことを示しています。 マイコード:このコードwall_setで がボタンの名前ですget()メソッドが表示されない

wall_set.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Bitmap result=Glide.with(getApplicationContext()) 
          .load("http://www.sport-stickers.com/images/2013/CARTOON%20IRON%20ONS/Doraemon/Doraemon%20Iron%20ons%20(Wall%20Stickers)%20N3715.jpg").get(); 


        WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 
        try { 
         wallpaperManager.setBitmap(result); 
        } catch (IOException ex) { 
         ex.printStackTrace(); 
        } 
       } 
      } 
    ); 
+1

[Glideのドキュメント](https://github.com/bumptech/glide/wiki)をご覧ください。 'get()'ではなく 'into()'を使用する必要があるようです。 – rundavidrun

+0

あなたがasBitmap()を追加するために行方不明になっているようです。この回答を参照してください。https://stackoverflow.com/a/27394484/7134908 –

答えて

1

変更コードのこの部分:以下

Bitmap result=Glide.with(getApplicationContext()) 
         .load("http://www.sport-stickers.com/images/2013/CARTOON%20IRON%20ONS/Doraemon/Doraemon%20Iron%20ons%20(Wall%20Stickers)%20N3715.jpg").asBitmap().get(); 

"asBitmap" を追加

you might need to add 
asBitmap().into(20, 20). // Width and height 

+0

「.asBitmap()」を追加しても、 – user8027365

0

グライドサンプルの使用方法に従うと、それはget ()メソッドはjava.util.concurrent.Futureオブジェクトに属します。そして将来のクラス定義は以下のように公式文書によって与えられる。

public interface Future<V>将来は、 非同期計算の結果を表します。 の計算が完了したかどうかをチェックし、完了を待って計算の結果を で検索する方法が提供されています。結果は、計算が完了したら メソッドgetを使用して取得することができ、必要な場合はブロックして、準備ができるまで になります。キャンセルはキャンセル方法で行います。 タスクが を正常終了したかキャンセルしたかを判断するための追加の方法が提供されています。計算が完了すると、 の計算をキャンセルすることはできません。 のFuture for cancellabilityを使用したいが、使用可能な結果が得られない場合は、 のタイプのFutureを宣言し、 の基本タスクの結果としてnullを返すことができます。

使用例は、(。次のクラスはすべて作らアップされていることに注意してください)

interface ArchiveSearcher { String search(String target); } 
class App { 
    ExecutorService executor = ... 
    ArchiveSearcher searcher = ... 
    void showSearch(final String target) 
     throws InterruptedException { 
    Future<String> future 
     = executor.submit(new Callable<String>() { 
     public String call() { 
      return searcher.search(target); 
     }}); 
    displayOtherThings(); // do other things while searching 
    try { 
     displayText(future.get()); // use future 
    } catch (ExecutionException ex) { cleanup(); return; } 
    } 
} 

ステップごとに何が起こるか見てみましょう:

Bitmap theBitmap = Glide. 
     with(this). //in Glide class and returns RequestManager 
     load(image_url). // in RequestManager and returns RequestBuilder<Drawable> 
     asBitmap(). //in RequestBuilder and returns RequestBuilder<Bitmap> 
     submit(). // in RequestBuilder and returns FutureTarget<TranscodeType> which extends Future<> 
     get(); // this belongs to Future object which is the result of async computation 

public static RequestManager with(Context context) { 
    return getRetriever(context).get(context); 
    } 

public RequestBuilder<Drawable> load(@Nullable Object model) { 
    return asDrawable().load(model); 
    } 


    public RequestBuilder<Bitmap> asBitmap() { 
    return as(Bitmap.class).transition(new GenericTransitionOptions<Bitmap>()) 
      .apply(DECODE_TYPE_BITMAP); 
    } 

public FutureTarget<TranscodeType> submit() { 
    return submit(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL); 
    } 


public interface FutureTarget<R> extends Future<R>, Target<R> { 
} 

しかし、より適切かつ安全な解決策はコールバックを使用することです。

Glide 
    .with(this) 
    .load(image_url) 
    .asBitmap() 
    .into(new SimpleTarget<Bitmap>(100,100) { 
     @Override 
     public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { 
      //resource is the resulting bitmap 
     } 
    }); 
関連する問題