Android Загрузить большое изображение для печати - PullRequest
0 голосов
/ 03 июня 2018

Я работаю над дизайнерским приложением.Нужно создать очень большое невидимое представление с изображением внутри, а затем преобразовать его в растровое изображение для печати, но Android не позволяет мне загружать такое огромное изображение в память.Есть ли решения для этого.

1 Ответ

0 голосов
/ 03 июня 2018

Вам не нужно брать невидимый вид и загружать в него изображение.Вы можете напрямую загрузить изображение в виде изображения и преобразовать его в растровое изображение. Вот мой код, в который я загрузил изображение в XML, а затем преобразовал весь XML-файл в растровое изображение, потому что у меня есть много других вещей, которые я хочу преобразовать в Bitmap.Iнадеюсь, что этот код поможет вам.

RawMapInfoWindowBinding rawMapInfoWindowBinding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.raw_map_info_window, (ConstraintLayout) mBinding.getRoot(), false);

rawMapInfoWindowBinding.clLike.measure( View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); rawMapInfoWindowBinding.clLike.layout(0, 0, rawMapInfoWindowBinding.clLike.getMeasuredWidth(), rawMapInfoWindowBinding.clLike.getMeasuredHeight());

Я использовал glide для загрузки моего изображения

enter code here

    try {

        GlideApp.with(this).asBitmap().centerCrop().circleCrop().load(statusModel.profileurl)
                .diskCacheStrategy(DiskCacheStrategy.ALL).listener(new RequestListener<Bitmap>() {
            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
                LogUtils.LOGE(TAG, "onLoadFailed: " + statusModel.statusID);
                Log.e(TAG, "onLoadFailed --------- " + isSearching);
                return false;
            }

            @Override
            public boolean onResourceReady(Bitmap bitmap, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
           rawMapInfoWindowBinding.ivProfileImage.setImageBitmap(bitmap);
           return true;
            }
        }).submit(100, 100);

    } catch (Throwable t) {
        t.printStackTrace();
    }
}`
...