Я хочу сохранить (экспортировать) содержимое MyView, расширяющего TextView, в растровое изображение.
Я следовал за кодом: [this] [1].
Он отлично работает, когда размер текста небольшой.
Но когда текстов много,и часть содержимого находится за пределами экрана, я получил только то, что было показано на экране.
Затем я добавляю «макет» в свой код:
private class MyView extends TextView{
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public Bitmap export(){
Layout l = getLayout();
int width = l.getWidth() + getPaddingLeft() + getPaddingRight();
int height = l.getHeight() + getPaddingTop() + getPaddingBottom();
Bitmap viewBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(viewBitmap);
setCursorVisible(false);
layout(0, 0, width, height);
draw(canvas);
setCursorVisible(true);
return viewBitmap;
}
}
ТеперьПроизошла странная вещь:
При первом вызове «экспорта» (для этого я использую клавишу выбора), я получил содержимое только на экране.
Когда я снова вызываю «экспорт»Я получил полное содержимое, в том числе и за пределы экрана.
Почему?
Как "экспортировать" представление, включая содержимое, которое не может быть отображено на экране?
Спасибо!
[1]: http://www.techjini.com/blog/2010/02/10/quicktip-how-to-convert-a-view-to-an-image-android/ это