Ответ 1
Как преобразовать вид в растровое изображение
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
У меня есть два вида (Textview
и ImageView
) в FrameLayout
, я хочу сохранить изображение с текстом. Для этого я скрываю представление в растровое изображение.
Мой xml:
<FrameLayout
android:id="@+id/framelayout"
android:layout_marginTop="30dip"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ImageView
android:id="@+id/ImageView01"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<TextView android:id="@+id/text_view"
android:layout_marginTop="30dip"
android:layout_width="wrap_content"
android:maxLines="20"
android:scrollbars="vertical"
android:layout_height="wrap_content"/>
</FrameLayout>
Как преобразовать вид в растровое изображение
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
Я использовал метод buildDrawingCache()
для получения растрового изображения моего макета, но У меня возникли проблемы с ним, когда представление было большим. Теперь я использую следующий метод:
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
Привет, вы можете получить растровое изображение с помощью следующего фрагмента
mView.setDrawingCacheEnabled(true);
mView.getDrawingCache();
почему бы вам не написать свой класс, который расширяет ImageView и переопределяет метод onDraw и помещает туда ваше изображение и текст, проще?