Используйте Пикассо, чтобы поместить изображение в Drawable
Я пытаюсь использовать Пикассо из Square, чтобы извлечь JPG из URL-адреса, а затем добавить к EditText. Причина для Пикассо в том, что он очень легкий в реализации. Как можно видеть, я использую заполнитель ImageView, посредством которого Picasso будет импортировать изображение из предоставленного URL, а затем я преобразую этот ImageView в Drawable. То же самое касается ImageGetter. Однако я получаю ошибку нулевого указателя при использовании конфигурации ниже. (Обратите внимание, что при простом использовании drawable из ресурсов приложения вместо переменной drawImage, приведенной ниже, эта конфигурация работает, но я пытаюсь расширить ее для извлечения ресурсов из URL).
Здесь есть что-то неуместное? Или более эффективный способ сделать это?
Способ добавления в EditText:
public void appendToMessageHistory(String username, String message) {
if (username != null && message != null) {
ImageView image = new ImageView(getApplicationContext());
Picasso.with(getBaseContext()).load("http://localhost:3000/uploads/campaign/image/2/2.jpg").into(image);
Drawable drawImage = image.getDrawable();
messageHistoryText.append(Html.fromHtml("<b>" + username + ":"
+ "</b>" + "<br>"));
messageHistoryText.append(Html.fromHtml(message + "<hr>" + "<br>")
+ System.getProperty("line.separator") + "");
messageHistoryText.append(Html.fromHtml("<img src = '"
+ drawImage + "'/>",
imageGetter, null));
}
}
ImageGetter:
ImageGetter imageGetter = new ImageGetter() {
@Override
public Drawable getDrawable(String source) {
ImageView image = new ImageView(getApplicationContext());
Picasso.with(getBaseContext()).load("http://localhost:3000/uploads/campaign/image/2/2.jpg").into(image);
Drawable drawImage = image.getDrawable();
drawImage.setBounds(0, 0, drawImage.getIntrinsicHeight(), drawImage.getIntrinsicWidth());
return drawImage;
}
};