2017-11-18 13 views
0

画像のURLからなる文字列が、同じアクティビティでURLを介して表示されています。しかし、私の壁紙と同じ画像を設定するには、文字列をUriに変換してからBitmapに変換します。setBitmapですが、まだエラーが表示されています画像が選択されていませんwallpaperManagerを使用して壁紙にビットマップを設定できません

コードは次のとおりです。 newStringには画像のURLがあります。

final String myUrlStr = newString; 
    URL url; 
    Uri uri=null; 
    try { 
     url = new URL(myUrlStr); 
     uri = Uri.parse(url.toURI().toString()); 
    } catch (MalformedURLException e1) { 
     e1.printStackTrace(); 
    } catch (URISyntaxException e) { 
     e.printStackTrace(); 
    } 

    try { 
     image = MediaStore.Images.Media.getBitmap(this.getContentResolver(),uri); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    setButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      WallpaperManager wallpaperManager=WallpaperManager.getInstance(getApplicationContext()); 

      try { 
       // Set the image as wallpaper 
       if(image!=null) 
        wallpaperManager.setBitmap(image); 
       else 
        Toast.makeText(getApplicationContext(), "No image was chosen.", Toast.LENGTH_LONG).show(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

     } 
    }); 
+0

これはあなたが探している回答かもしれません。 [投稿へ](https://stackoverflow.com/a/3090802/1712016) – phonemyatt

+0

@phonemyatt私はまだ、上記の投稿リンクがどのように役立つか分からなかった。もっと説明できますか? –

+0

@phonemyatt私はすでにURLを持っています。 –

答えて

0

私はコメントできないようです。だから私はここで答えます。

あなたのインターネットがローカルであるかどうか不安です。あなたのコードに間違いはありません。だから、私の控除はあなたのonclicklistenerがイメージを取得する前に設定されていることです(イメージを保存するためにasyntaskを使う必要があるかもしれません)同じイメージリソースからあなたのイメージビューを表示していますか?

関連する問題