Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android将文本添加到图片并保存_Android_Camera_Android Camera_Android Camera Intent - Fatal编程技术网

Android将文本添加到图片并保存

Android将文本添加到图片并保存,android,camera,android-camera,android-camera-intent,Android,Camera,Android Camera,Android Camera Intent,我想在我的图片中放置一个textView,然后保存它,但我不确定如何将文本插入图片中 我可以在图片上附加图像并保存它,它可以工作,但现在我想在图片中插入textView 这是我的密码: PictureCallback cameraPictureCallbackJpeg = new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { // TODO Auto-gen

我想在我的图片中放置一个
textView
,然后保存它,但我不确定如何将文本插入图片中

我可以在图片上附加图像并保存它,它可以工作,但现在我想在图片中插入
textView

这是我的密码:

PictureCallback cameraPictureCallbackJpeg = new PictureCallback() 
{  
@Override
public void onPictureTaken(byte[] data, Camera camera) 
{
  // TODO Auto-generated method stub   
  Bitmap cameraBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

  wid = cameraBitmap.getWidth();
  hgt = cameraBitmap.getHeight();

  Bitmap newImage = Bitmap.createBitmap(wid, hgt, Bitmap.Config.ARGB_8888);
  Canvas canvas = new Canvas(newImage);
  canvas.drawBitmap(cameraBitmap, 0f, 0f, null);
  Drawable drawable = getResources().getDrawable(R.drawable.love);
  drawable.setBounds(20, 20, 260, 160);
  drawable.draw(canvas);

  File storagePath = new File(Environment.getExternalStorageDirectory() + "/MyPicture/"); 
  storagePath.mkdirs(); 

  File myImage = new File(storagePath,Long.toString(System.currentTimeMillis()) + ".jpg");

  try
  {
    FileOutputStream out = new FileOutputStream(myImage);
    newImage.compress(Bitmap.CompressFormat.JPEG, 80, out);


    out.flush();
    out.close();
  }
  catch(FileNotFoundException e)
  {
    Log.d("In Saving File", e + "");    
  }
  catch(IOException e)
  {
    Log.d("In Saving File", e + "");
  }

  camera.startPreview();

  drawable = null;

  newImage.recycle();
  newImage = null;

  cameraBitmap.recycle();
  cameraBitmap = null;
}
;
};
如果您只需要“文本”,而不一定需要
TextView
,则可以使用直接在画布上绘制文本

只需将其更改为:

  Canvas canvas = new Canvas(newImage);
  canvas.drawBitmap(cameraBitmap, 0f, 0f, null);
  canvas.drawText("some text here", x, y, myPaint);

  ...

  newImage.compress(Bitmap.CompressFormat.JPEG, 80, out);

如果确实需要它是
TextView
,可以将视图转换为位图,然后使用
drawBitmap()
在画布上绘制。有关如何转换的示例,请参见。

我应该在myPaint中添加什么?用于定义文本的外观。对齐方式、颜色、字体等。您可能只需传递
null
,但我不知道默认的绘制是什么样子。我从未将其用于文本。@Geobits什么是
cameraBitmap