2016-07-05 9 views
0

Ich verwende Stoff, um Bild und Text Tweets zu komponieren.Http Bild wird nicht in TweetComposer.Builder gezeigt

Logcat:

E/TwitterImage: https://458fbec5cf61223e14d9-6f3259da71af87ee4df772aff14bfdf0.ssl.cf5.rackcdn.com/temp_photo.jpg

UsersPostAdapter.java:

Log.e("TwitterImage", ""+strShareImageUrl); 

    Uri uri = Uri.parse(strShareImageUrl); 

    TweetComposer.Builder builder = new TweetComposer.Builder(context) 
      .text(strShareText) 
      .image(uri); 
    builder.show(); 

ich den Text in twitter Fenster bekommen konnten, während sharing.But Bilder nicht sein könnte Anzeige im Twitter-Fenster.

Ich bekomme Toast als image could not be located in twitter window.Only Text angezeigt wird.

Antwort

0

Das Image Uri sollte eine Datei Uri (d. H. Datei: // absolute_path Schema) zu einer lokalen Datei sein.

Fresko mit u wie dieses

tun können
final DataSource<CloseableReference<PooledByteBuffer>> dataSource = 
       ImagePipelineFactory.getInstance().getImagePipeline().fetchEncodedImage(ImageRequest.fromUri(Constants.DEFAULT_LOGO), this); 

    DataSubscriber<CloseableReference<PooledByteBuffer>> dataSubscriber = 
      new BaseDataSubscriber<CloseableReference<PooledByteBuffer>>() { 
       @Override 
       protected void onNewResultImpl(
         DataSource<CloseableReference<PooledByteBuffer>> dataSource) { 
        if (!dataSource.isFinished()) { 
         return; 
        } 

        CloseableReference<PooledByteBuffer> imageReference = dataSource.getResult(); 
        if (imageReference != null) { 
         FileOutputStream fileOutputStream = null; 
         PooledByteBufferInputStream pooledByteBufferInputStream; 
         try { 
          pooledByteBufferInputStream = new PooledByteBufferInputStream(imageReference.get()); 
          // write the inputStream to a FileOutputStream 
          File tempFile = AndroidUtils.createImageFile(); 

          fileOutputStream = new FileOutputStream(tempFile); 

          int read = 0; 
          byte[] bytes = new byte[1024]; 

          while ((read = pooledByteBufferInputStream.read(bytes)) != -1) { 
           fileOutputStream.write(bytes, 0, read); 
          } 

          startTwitterIntent(tempFile); 

         } catch (MalformedURLException e) { 
          AnalyticsManager.logError(e); 
          finish(); 
         } catch (IOException e) { 
          e.printStackTrace(); 
         } finally { 
          CloseableReference.closeSafely(imageReference); 
          imageReference = null; 
          dataSource.close(); 
         } 
        } 
       } 

       @Override 
       protected void onFailureImpl 
         (DataSource<CloseableReference<PooledByteBuffer>> dataSource) { 
        Throwable t = dataSource.getFailureCause(); 
        AnalyticsManager.logError(t); 
       } 
      }; 

    dataSource.subscribe(dataSubscriber, UiThreadImmediateExecutorService.getInstance()); 

Hoffe, es hilft