Как преобразовать элементы recyclerview вместе с другими данными макета в растровое изображениеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как преобразовать элементы recyclerview вместе с другими данными макета в растровое изображение

Сообщение Anonymous »

при сохранении макета в растровое изображение части моего макета не-RecyclerView отображаются правильно, но содержимое RecyclerView отсутствует,
Как я могу правильно преобразовать макет, содержащий RecyclerView (со всеми видимыми элементами), в одно растровое изображение в Android (Java)?
Мне нужно, чтобы окончательное изображение включало все видимые и внеэкранные элементы RecyclerView вместе с другим макетом данные.
Java

Код: Выделить всё

private void data()
{
if (NetworkCheck.getInstance(this.getApplicationContext()).isOnline()) {
DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child(PendingBill).child(BillID).child("Items");

FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder()
.setQuery(reference.orderByChild("billID").equalTo(BillID), BillItem.class)
.build();
FirebaseRecyclerAdapter adapter =
new FirebaseRecyclerAdapter(options) {

@Override
protected void onBindViewHolder(@NonNull BillViewHolder holder, int position, @NonNull final BillItem model) {

Integer Countcal, TotalCal, PriceCal;
Countcal=model.getCount();
PriceCal=model.getItemTotal();
TotalCal=Countcal*PriceCal;
String CountcalStr= String.valueOf(Countcal),TotalCalStr= String.valueOf(TotalCal);

holder.proName.setText(model.getProductName());
holder.proRate.setText(model.getItemTotal().toString());
holder.proCount.setText(CountcalStr);
holder.proTotal.setText(TotalCalStr);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Share();
}

});

}
@NonNull
@Override
public BillViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_list, viewGroup, false);
BillViewHolder holder = new BillViewHolder(view);
return holder;
}

@Override
public void onDataChanged() {

// jprog.setVisibility(getItemCount() == 0 ? View.VISIBLE : View.GONE);
prog.setVisibility(View.GONE);
}                        };

recyclerview.setAdapter(adapter);
adapter.startListening();
adapter.notifyDataSetChanged();

} else {
Toast.makeText(this, "Oops..  Internet is not connected please Establish it First", Toast.LENGTH_LONG).show();

}
}
private void Share( Bitmap h) {

// Measure and layout the view
int widthSpec = View.MeasureSpec.makeMeasureSpec(1080, View.MeasureSpec.EXACTLY);
int heightSpec = View.MeasureSpec.makeMeasureSpec(1920, View.MeasureSpec.AT_MOST);
billView.measure(widthSpec, heightSpec);
billView.layout(0, 0, billView.getMeasuredWidth(), billView.getMeasuredHeight());

// Convert to bitmap
Bitmap bitmap = Bitmap.createBitmap(billView.getMeasuredWidth(), billView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
billView.draw(canvas);

// Save bitmap as image file (PNG or JPEG)
try {
File imagesDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).toString() + File.separator + "MyBill");

if (!imagesDir.exists())
imagesDir.mkdir();

imageFile = new File(imagesDir, "Invoice" + ".png");
FileOutputStream outputStream = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
outputStream.flush();
outputStream.close();

Toast.makeText(this, "Invoice image saved!", Toast.LENGTH_SHORT).show();

} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, "Error saving image!", Toast.LENGTH_SHORT).show();
}
}
выходное изображение (случайные данные текстового просмотра)
Изображение


Подробнее здесь: https://stackoverflow.com/questions/798 ... -to-bitmap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»