【问题标题】:Android Picasso nine patch image from urlAndroid Picasso 九个补丁图片来自 url
【发布时间】: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.getNin​​ePatchChunk() 为空,图像被拉伸,没有任何效果。

有什么解决办法吗?

最好的问候

【问题讨论】:

    标签: android image picasso nine-patch


    【解决方案1】:

    我的解决方案是使用这个类:https://gist.github.com/knight9999/86bec38071a9e0a781ee

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多