Android Picasso девять исправлений изображения из URL-адреса

У меня проблема с загрузкой девяти изображений патчей из 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, изображение растянуто, ничего не работает.

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

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


person user2331454    schedule 04.02.2016    source источник


Ответы (1)


Мое решение использовало этот класс: https://gist.github.com/knight9999/86bec38071a9e0a781ee

person user2331454    schedule 26.04.2016