Я пытаюсь создать программный вид View, раздувая макет.Создание растрового изображения зрения
View marker = ((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.overlay_view, null);
Теперь я хочу, чтобы преобразовать этот взгляд в растр
public static Bitmap createDrawableFromView(Context context, View view){
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
Bitmap cache = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(cache);
view.draw(canvas);
return cache;
}
Я также попытался меру (1, 1) и расположение (0, 0, 0, 0) без каких-либо изменений. Растровое изображение выглядит как заполненный макет. Теперь проблема: если я что-то помещаю в представление, которое делает вид больше, чем Displaysize по ширине или высоте (например: TextView с длинным текстом), битмап также больше. Ширина и высота представления XML - WRAP_CONTENT, но она не работает. Я никогда не помещал это представление куда-нибудь, чтобы отобразить его (потому что мне нужно только битмап).
Вопрос: Как я могу WRAP просмотреть максимум ширины = displayWidth?
Я попробовал view.setLayoutParams (новый LayoutParam (100, 100)), но он также был больше 100! Я действительно не понимаю, что произошло, когда я раздувал макет и задавал содержимое представления.
View.getMeasuredWidth и Height всегда больше моего дисплея ?! (Если я ставлю в нем что-то большее)
Вот пример компоновки:
<RelativeLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/somedrawable"
android:padding="10dp"
android:clickable="true">
<TextView android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"/>
<TextView android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:text="Description"
android:textSize="20dp"
android:textColor="#ffffff"/>
</RelativeLayout>
[Проверить этот ответ] (http://stackoverflow.com/questions/8294110/taking-screenshot/8366223#8366223) –
гул? Где ответ? Был ответ, но он ушел сейчас ?! – Informatic0re
проверьте ссылку, которую я дал. –