2015-10-06 26 views
1

我已經在我的項目中使用了Fresco庫。 我想知道我們是否也可以在Html.HtmlFromImageGetter中使用它。 這是我的代碼作爲例子。Html.HtmlFrom中的壁畫庫

public class ItemActivity extends AppCompatActivity implements Html.ImageGetter { 

    private TextView contentTextView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_item); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     contentTextView = (TextView) this.findViewById(R.id.itemContentTextView); 

     String content = getIntent().getStringExtra("content"); 

     contentTextView.setText(Html.fromHtml(content, this, null)); 
    } 

    @Override 
    public Drawable getDrawable(String source) { 
     return null; 
    } 
} 

我試圖使用方法如下:

public Drawable getDrawable(String source) { 
     SimpleDraweeView draweeView = new SimpleDraweeView(getBaseContext()); 
     draweeView.setImageURI(Uri.parse(source)); 
     return draweeView.getDrawable(); 
    } 

但沒有加載任何圖片。 有什麼辦法可以做到嗎?

回答

0

您需要使用getTopLevelDrawable()而不是getDrawable()

0
public Drawable getDrawable(String source) { 
     if (Strings.isNullOrEmpty(source)) { 
      return null; 
     } 
     SimpleDraweeView simpleDraweeView = new SimpleDraweeView(mContext); 
     ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(Uri.parse(source)); 
     DraweeController draweeController = Fresco.newDraweeControllerBuilder() 
       .setImageRequest(imageRequestBuilder.build()) 
       .setOldController(simpleDraweeView.getController()) 
       .setAutoPlayAnimations(true) 
       .build(); 
     simpleDraweeView.setController(draweeController); 
     Drawable drawable = simpleDraweeView.getDrawable(); 
     drawable.setBounds(0, 0, 100, 100); 
     return drawable; 
    }