2017-10-24 13 views
0

グライドを使用してGIFイメージをRecyclerViewにロードしています。他のアプリにGIF画像を共有するにはどうしたらいいですか?

Glide.with(context).load(imageUrl.trim()) 
       .asGif() 
       .placeholder(R.drawable.coming) 
       .error(R.drawable.error) 
       .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
       .into(holder.gif_image); 
+0

http://idownvotedbecau.se/noattempt/ – Tomm

+0

@Tomm何が起こります? ?手伝って頂けますか? –

+0

あなたは私がここに送ったリンクを開いたことがありますか? – Tomm

答えて

0

ここwhatsapp

whatsapp.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Intent whatsappIntent = new Intent(Intent.ACTION_SEND); 
        whatsappIntent.setFlags(FLAG_ACTIVITY_NEW_TASK); 
        whatsappIntent.setType("image/*"); 
        whatsappIntent.setPackage("com.whatsapp"); 
        new Download_GIF(image).execute(); 
        Uri imageUri = Uri.parse("file:///storage/emulated/0/downloadedFile.gif"); 
        whatsappIntent.putExtra(Intent.EXTRA_STREAM, imageUri); 
        try { 
         startActivity(whatsappIntent); 
        } catch (android.content.ActivityNotFoundException ex) { 
         try { 
          Intent intent = new Intent(Intent.ACTION_VIEW); 
          intent.setData(Uri.parse("market://details?id=com.whatsapp")); 
          startActivity(intent); 
         } catch (Exception e) { 
          Intent intent = new Intent(Intent.ACTION_VIEW); 
          intent.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.whatsapp")); 
          intent.setFlags(FLAG_ACTIVITY_NEW_TASK); 
          startActivity(intent); 
         } 
        } 
       } 
      }); 

ウェブ

上のGIFイメージがIMAGEBUTTON

Download_GIFクラスであれば

public class Download_GIF extends AsyncTask<String, Void, String> { 
    static String url_image=null; 

    public Download_GIF(String url) { 
     this.url_image = url; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected String doInBackground(String... params) { 

     String filepath = null; 
     try { 
      //set the download URL, a url that points to a file on the internet 
      //this is the file to be downloaded 
      URL url = new URL(url_image); 
      //create the new connection 
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 

      //set up some things on the connection 
      urlConnection.setRequestMethod("GET"); 
      urlConnection.setDoOutput(true); 
      //and connect! 
      urlConnection.connect(); 
      //set the path where we want to save the file 
      //in this case, going to save it on the root directory of the 
      //sd card. 
      File SDCardRoot = Environment.getExternalStorageDirectory(); 
      //create a new file, specifying the path, and the filename 
      //which we want to save the file as. 

      String filename = "downloadedFile.gif"; // you can download to any type of file ex:.jpeg (image) ,.txt(text file),.mp3 (audio file) 
      Log.i("Local filename:", "" + filename); 
      File file; 
      file = new File(SDCardRoot, filename); 
      if (file.createNewFile()) { 
       file.createNewFile(); 
      } 

      //this will be used to write the downloaded data into the file we created 
      FileOutputStream fileOutput = new FileOutputStream(file); 

      //this will be used in reading the data from the internet 
      InputStream inputStream = urlConnection.getInputStream(); 

      //this is the total size of the file 
      int totalSize = urlConnection.getContentLength(); 
      //variable to store total downloaded bytes 
      int downloadedSize = 0; 

      //create a buffer... 
      byte[] buffer = new byte[1024]; 
      int bufferLength = 0; //used to store a temporary size of the buffer 

      //now, read through the input buffer and write the contents to the file 
      while ((bufferLength = inputStream.read(buffer)) > 0) { 
       //add the data in the buffer to the file in the file output stream (the file on the sd card 
       fileOutput.write(buffer, 0, bufferLength); 
       //add up the size so we know how much is downloaded 
       downloadedSize += bufferLength; 
       //this is where you would do something to report the prgress, like this maybe 
       Log.i("Progress:", "downloadedSize:" + downloadedSize + "totalSize:" + totalSize); 

      } 
      //close the output stream when done 
      fileOutput.close(); 
      if (downloadedSize == totalSize) filepath = file.getPath(); 

      //catch some possible errors... 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      filepath = null; 
      e.printStackTrace(); 
     } 
     Log.i("filepath:", " " + filepath); 

     return filepath; 


    } 

    @Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
    } 
} 
+0

画像を保存してから今すぐ共有してもらえますか?今、私はいくつかのAPIからGIF画像のURLを取得しています –

+0

イメージはウェブ上にありますか?またはローカルストレージにありますか? –

+0

あなたのgifがWeb上にあればそれを共有することができたら最初にダウンロードする必要があります –

0

あなたのAndroidアプリの間には、そのためのプロトコルがないので、gifを共有することはできません。申し訳ありません、友人です。

あなたのために構築されたアプリの間で共有したい場合は、イメージとフラグ(ヘッダーまたは別のパラメータ)をシリアル化して、それがgifであることを知ることができます。

関連する問題