2017-06-21 6 views
1

Ich habe eine RelativeLayout und möchte ein Bitmap daraus erstellen und an Bluetooth-Drucker in Bytes senden. Je nach Auflösung des Geräts, wenn meine Bitmap generiert wird, ändert sich die Textansicht Schriftgröße - höher die Auflösung, höher die Schriftgröße. Wie kann ich unabhängig von der Geräteauflösung nur eine Größe generieren?Bitmap von RelativeLayout in Android erstellen

Mein Code:

layout.setDrawingCacheEnabled(true); 
layout.measure(View.MeasureSpec.makeMeasureSpec(580, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(layout.getMeasuredHeight(), View.MeasureSpec.UNSPECIFIED)); 
layout.layout(0, 0, layout.getMeasuredWidth(), layout.getMeasuredHeight()); 
layout.buildDrawingCache(false); 
Bitmap sImagem = Bitmap.createBitmap(layout.getDrawingCache(false)); 
layout.setDrawingCacheEnabled(false); 

580 ist die Größe meiner Arbeit, und das ist in Ordnung, in Drucker!

Antwort

0

versuchen, diese noch

 private void takeScreenShot(){ 
     int totalHeight = mScreenshotLayout.getHeight(); 
     int totalWidth = mScreenshotLayout.getWidth(); 

     Bitmap b = getBitmapFromView(mScreenshotLayout,totalHeight,totalWidth); 
     SendingMail(b); 

     } 

     public Bitmap getBitmapFromView(View view, int totalHeight, int totalWidth) { 
     Bitmap returnedBitmap = Bitmap.createBitmap(totalWidth,totalHeight ,Bitmap.Config.ARGB_8888); 
     Canvas canvas = new Canvas(returnedBitmap); 
     Drawable bgDrawable = view.getBackground(); 
     if (bgDrawable != null) 
     bgDrawable.draw(canvas); 
    else 
     canvas.drawColor(Color.WHITE); 
    view.draw(canvas); 
    return returnedBitmap; 
} 
+0

nicht funktioniert ... –