2016-07-05 7 views
0

私はファブリックを使用して画像とテキストのツイートを作成しています。TweetComposer.BuilderでHTTP画像が表示されない

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(); 

sharing.Butイメージがあることができなかった間、私はTwitterのウィンドウ内のテキストを得ることができますtwitterウィンドウに表示する。

私はトゥウィッターウィンドウでimage could not be locatedとしてトーストしています。テキストのみが表示されます。

答えて

0

イメージUriはローカルファイルのファイルUri(つまりfile:// absolute_pathスキーム)である必要があります。 uはこの

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()); 

のように行うことができますフレスコを使用

は、それが

を役に立てば幸い
関連する問題