1

プロジェクトですでに Fresco ライブラリを使用しています。ImageGetterfromでも使えるかな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();
    }

しかし、画像は読み込まれませんでした。それを行う方法はありますか?

4

2 に答える 2

0

getTopLevelDrawable()ではなく、を使用する必要がありますgetDrawable()

于 2015-11-11T19:51:39.417 に答える
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;
    }
于 2016-05-11T10:03:24.987 に答える