【问题标题】:Create Bitmap from RelativeLayout in Android在 Android 中从 RelativeLayout 创建位图
【发布时间】:2017-06-21 16:07:59
【问题描述】:

我有一个 RelativeLayout 并想从中创建一个位图并以字节为单位发送到蓝牙打印机。 根据设备分辨率,当我的位图生成更改 textviews 字体大小 - 分辨率越高,字体大小越高。 无论设备分辨率如何,如何只生成一种尺寸?

我的代码:

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 是我的纸张尺寸,在打印机上没问题!

【问题讨论】:

    标签: android android-layout printing bitmap


    【解决方案1】:

    试试这个

          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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-13
      • 2013-07-18
      • 2015-11-02
      • 2013-11-13
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多