在Android中使用相机捕获图像并使用自定义名称保存
我已经创建了一个Android应用程序,将捕获图片并保存在SD卡文件夹中,现在我想用自定义名称保存图像。
import java.io.ByteArrayOutputStream; import android.view.Menu; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends Activity { private static final int CAMERA_REQUEST = 1888; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.imageView = (ImageView) this.findViewById(R.id.imageView1); Button photoButton = (Button) this.findViewById(R.id.button1); photoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent cameraIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, MediaStore.Images.Media.EXTERNAL_CONTENT_URI.getPath()); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, "new-photo-name.jpg"); startActivityForResult(cameraIntent, CAMERA_REQUEST); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { Bitmap photo = (Bitmap) data.getExtras().get("data"); imageView.setImageBitmap(photo); MediaStore.Images.Media.insertImage(getContentResolver(), photo, null, null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); photo.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); } }
这是我用来捕获图像并将其保存在SD卡文件夹中的代码,请帮我保存具有特定名称的图像,例如:android.jpeg
File outFile = new File(Environment.getExternalStorageDirectory(), "myname.jpeg"); FileOutputStream fos = new FileOutputStream(outFile); photo.compress(Bitmap.CompressFormat.JPEG, 100, fos); fos.flush(); fos.close();
您还需要在Android Manifest中添加Permission。
该片段将使用名称"myname.jpeg"
保存/sdcard
的photo
内容
您需要将fileName作为Intent Extras –
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, "android.jpg");
这篇文章可能很有用,试一试。
这也是唯一的不同,他使用日期作为默认名称。 更改。
它通常工作:)