Опять же, я пытаюсь найти ответы по всей сети. Однако я не могу найти, чтобы он соответствовал моей проблеме.Picaso с ImageGetter в TextView от JSON
В принципе, у меня есть список смайликов из API, который я использую, и я пытаюсь отобразить эти изображения в TextView, который просто не работает. Изображения отображаются в виде синих квадратов в моем режиме обработки, пока я не вернусь к ним, затем они появятся. Вот мой код, и я не уверен, что я делаю правильно. Я не могу вспомнить, почему я сделал то, что сделал, поскольку это старый код, и я пытаюсь его реорганизовать. Может ли кто-нибудь помочь?
Вот код:
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Posts posts = mPost.getItem(position);
emoticons = mEmoticon.getItems();
String message = null;
String emoMessage = null;
if (posts.getPost() != null) {
if (posts.getPost().getMessage() != null) {
message = posts.getPost().getMessage();
emoMessage = message;
if (emoticons != null) {
for (Emoticons emoticon : this.emoticons) {
if (message.contains(emoticon.getEmoticon().getCode())) {
emoMessage = message.replaceAll(Constants.EMO_REGEX, emoticon.getEmoticon().getUrl());
}
}
}
holder.mPostTextView.setText(Html.fromHtml(emoMessage, new Html.ImageGetter() {
@Override
public Drawable getDrawable(final String source) {
Target loadTarget;
loadTarget = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
try {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
URL url = new URL(source);
InputStream is = url.openStream();
Bitmap b = BitmapFactory.decodeStream(is);
mDrawable = new BitmapDrawable(Resources.getSystem(), b);
mDrawable.setBounds(0, 0, mDrawable.getIntrinsicWidth() + 25, mDrawable.getIntrinsicHeight() + 25);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
Picasso.with(mContext).load(source).into(loadTarget);
return mDrawable;
}
}, null);
}
Но я делаю все это в своем setText(), как бы мне это изменить? – BilalMH
Извините, у меня был другой взгляд, и я не думаю, что моя идея будет работать. Это может помочь? http://stackoverflow.com/questions/25194549/using-picasso-with-image-getter – danwilkie