#java #android #bitmap
#java #Android #растровое изображение
Вопрос:
Я пытаюсь создать растровое изображение, которое делает «скриншот» вида, но который больше размера экрана, мне нужно растровое изображение размером 1500px x 2115px, чтобы после этого превратить его в PDF, но на телефоне оно слишком большое.
Вот мой код, который работает, если я использую его с планшетом, но не с телефоном :
public void layoutToImage(View view, String imageName) {
view.setDrawingCacheEnabled(true);
view.measure(View.MeasureSpec.makeMeasureSpec(1500, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(2115, View.MeasureSpec.EXACTLY));
view.layout(0, 0, 1500, 2115);
view.buildDrawingCache(false);
Bitmap bm = view.getDrawingCache();
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
File mFileImg = new File(Environment.getExternalStorageDirectory() File.separator imageName);
try {
mFileImg.createNewFile();
FileOutputStream fo = new FileOutputStream(mFileImg);
fo.write(bytes.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
}
Возможно ли добиться того же результата на планшете, что и на телефоне? Любое решение или предложение будет полезно,
спасибо.
Комментарии:
1. Не используйте кэш чертежей. Я знаю, что есть тысячи примеров, которые показывают это, но это никогда не рекомендовалось. Используйте
Bitmap.create()
метод для создания соответствующего размераBitmap
, создайтеCanvas
на этомBitmap
, затемview.draw()
на этомCanvas
. Однако будьте осторожны с большими изображениями, так как очень легко очень быстро исчерпать память.2. Спасибо за советы!