Code View
private View getViewFactor() {
double count = 0.0;
int coint_box = 0;
LayoutInflater li = LayoutInflater.from(getApplicationContext());
View factor = li.inflate(R.layout.factor_pattern, null);
((TextView) factor.findViewById(R.id.factor_serial)).setText(factSerial);
((TextView) factor.findViewById(R.id.date)).setText(getDate());
((TextView) factor.findViewById(R.id.com)).setText(assistance.getCompany());
((TextView) factor.findViewById(R.id.name)).setText(userSelect.getName());
((TextView) factor.findViewById(R.id.phone)).setText(userSelect.getPhone());
((TextView) factor.findViewById(R.id.price_total)).setText(getNumber(assistance.convertFatoEn(String.valueOf(totalPreice))));
((TextView) factor.findViewById(R.id.offer_total)).setText(getNumber(String.valueOf(totalTakhfif)));
((TextView) factor.findViewById(R.id.finish_price)).setText(getNumber(String.valueOf((int) (Double.parseDouble(totalPreice) - totalTakhfif))));
if (userSelect.getBalance().substring(0, 1).equals("-")) {
((TextView) factor.findViewById(R.id.bedehkari)).setText(getNumber(userSelect.getBalance().substring(1)));
((TextView) factor.findViewById(R.id.payment_price)).setText(
getNumber(String.valueOf((int) (Double.parseDouble(totalPreice) -
totalTakhfif)+Double.parseDouble(userSelect.getBalance().substring(1)))));
} else {
((TextView) factor.findViewById(R.id.bedehkari)).setText("0");
((TextView) factor.findViewById(R.id.payment_price)).setText(
getNumber(String.valueOf((int) (Double.parseDouble(totalPreice) -
totalTakhfif))));
}
for(int i=0;i<modelCommodityList.size();i++){
LayoutInflater li1 = LayoutInflater.from(getApplicationContext());
View item = li1.inflate(R.layout.factor_item, null);
count+=modelCommodityList.get(i).getCount();
((TextView) item.findViewById(R.id.name)).setText(modelCommodityList.get(i).getName());
((TextView) item.findViewById(R.id.count1)).setText(String.valueOf(modelCommodityList.get(i).getCount()));
((TextView) item.findViewById(R.id.fi)).setText(getNumber(String.valueOf(modelCommodityList.get(i).getPrice())));
((TextView) item.findViewById(R.id.price)).setText(
getNumber( String.valueOf((int) (modelCommodityList.get(i).getCount()*Integer.parseInt(modelCommodityList.get(i).getPrice())))));
if(modelCommodityList.get(i).getZ1()!=0) {
((TextView) item.findViewById(R.id.count_box)).setText(
String.valueOf((int) (modelCommodityList.get(i).getCount()/modelCommodityList.get(i).getZ1())));
coint_box+=(int) (modelCommodityList.get(i).getCount()/modelCommodityList.get(i).getZ1());
}else {
((TextView) item.findViewById(R.id.count_box)).setText("0");
}
((AppCompatTextView) factor.findViewById(R.id.count)).setText(String.valueOf(count));
((AppCompatTextView) factor.findViewById(R.id.count_box10)).setText(String.valueOf(coint_box));
((LinearLayout) factor.findViewById(R.id.recycler10)).addView(item);
}
return factor;
}
and I convert view to bitmap by
private Bitmap createBitmapFromView(Context context, View view) {
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
view.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels);
view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels);
view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), 10000, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
When I have a lot of products and I add them to the view and convert the view into a bitmap, the bitmap I receive is incomplete. It does not show the view completely because the height of my view increased; it only converts half of the view.
I made it this way but I do not know if it is completely correct or not
private Bitmap createBitmapFromView(Context context, View view) {
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
view.measure(displayMetrics.widthPixels, displayMetrics.heightPixels*2);
view.layout(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels*2);
view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight()+50, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
return bitmap;
}