我想使用 picasso 从他们自己的 url 加载两个图像,并将它们用作 statelist,例如:
<item android:drawable="@drawable/sidebar_news_selected" android:state_selected="true"/>
<item android:drawable="@drawable/sidebar_news_selected" android:state_activated="true"/>
<item android:drawable="@drawable/sidebar_news_normal"/>
我怎样才能做到这一点?
更新:
多亏了Maddy
,我尝试了他的回答,现在我这样存货:
final StateListDrawable drawable = new StateListDrawable();
final Picasso picasso = Picasso.with(this.context);
target_normal = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Drawable drawImage = new BitmapDrawable(context.getResources(), bitmap);
drawable.addState(new int[]{android.R.attr.state_enabled}, drawImage);
picasso.load(context.getString(R.string.server_address)+dItem.getIconNormal()).into
(target_normal);
target_selected = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Drawable drawImage = new BitmapDrawable(context.getResources(), bitmap);
drawable.addState(new int[]{android.R.attr.state_selected}, drawImage);
drawable.addState(new int[]{android.R.attr.state_checked}, drawImage);
picasso.load(context.getString(R.string.server_address)+dItem.getIconSelected())
.into(target_selected);
drawerHolder.icon.setImageDrawable(drawable);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
但它不起作用。