2016-02-04 3 views
0

У меня проблема с загрузкой девяти патч-изображений из url в виде фонового изображения.Android Picasso с девятью патчами с 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() имеет значение NULL, изображение растянуто, ничего не работает.

Любые идеи для решения?

С наилучшими пожеланиями

ответ

Смежные вопросы