【发布时间】:2016-04-26 20:41:55
【问题描述】:
我在将九个补丁图像从 url 加载到视图中作为视图背景时遇到问题。
我可以从工作正常的资源中加载九个补丁图像。
我给毕加索设定的目标如下:
view.setTag(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, LoadedFrom from) {
Log.d("LOG", bitmap.getWidth() + " " + bitmap.getHeight());
BitmapDrawable bitmapDrawable = new BitmapDrawable(activity.getResources(), bitmap);
byte[] ninePatchChunk = bitmap.getNinePatchChunk();
if (NinePatch.isNinePatchChunk(ninePatchChunk)) {
view.setBackground(new NinePatchDrawable(activity.getResources(), bitmap, ninePatchChunk, new Rect(), null));
} else {
view.setBackground(bitmapDrawable);
}
}
}
此功能(从资产加载图像)工作正常:
Picasso.with(activity)
.load(R.drawable.nine_patch_button)
.into(view.getTag()); //view.getTag() is the target
但是我需要从网上下载背景图片。
Picasso.with(activity)
.load(uri_to_nine_patch_button)
.into(view.getTag()); //view.getTag() is the target
在第二种情况下,图像被拉伸并且不显示为九个补丁图像。当我从 URI 加载图像时,日志输出将始终相同(41、28),但是当我从资产加载图像时,日志输出因设备而异(108、75 和 38、27)。
在第一种情况下,具有相同的输出 bitmap.getNinePatchChunk() 为空,图像被拉伸,没有任何效果。
有什么解决办法吗?
最好的问候
【问题讨论】:
标签: android image picasso nine-patch