[英]Create folder and store Image by camera
please read my code ask solution how to create folder 请阅读我的代码问解决方案如何创建文件夹
public class CameraActivity extends ActionBarActivity { 公共类CameraActivity扩展了ActionBarActivity {
private static final int ACTION_TAKE_IMAGE = 1;
Button btnImage;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
imageView = (ImageView)findViewById(R.id.imageView);
btnImage= (Button) findViewById(R.id.buttonCapture);
btnImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takeVideoIntent, ACTION_TAKE_IMAGE);
}
});
}
@onActivityResult start @onActivityResult开始
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK)
{
try
{
AssetFileDescriptor imageAsset = getContentResolver().openAssetFileDescriptor(data.getData(), "r");
FileInputStream fis = imageAsset.createInputStream();
File root=new File(Environment.getExternalStorageDirectory(),"/Vipul/RecordImage/");
if (!root.exists()) {
System.out.println("No directory");
root.mkdirs();
}
File file;
file=new File(root,"IMG_"+System.currentTimeMillis()+".jpg" );
FileOutputStream fos = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len;
while ((len = fis.read(buf)) > 0) {
fos.write(buf, 0, len);
}
fis.close();
fos.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
if(requestCode == ACTION_TAKE_IMAGE && resultCode == RESULT_OK){
Bundle bundle = data.getExtras();
Bitmap imageBitmap = (Bitmap) bundle.get("data");
imageView.setImageBitmap(imageBitmap);
}
}
}
this code work 2.3 capture Image but work and not create folder not store in my specific folder please ask your answer 此代码可以工作2.3捕获图像,但是可以工作并且不能创建文件夹,但不能存储在我的特定文件夹中,请询问您的答案
UPDATE UPDATE
//declare
int num = 0;
//.....//
//*onclik button
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//Create folder
File imagesFolder = new File(
Environment.getExternalStorageDirectory(), "Myfolder");
imagesFolder.mkdirs();
//Asign name for image
File image = new File(imagesFolder, "Pic" + (num +1) + ".png");
Uri uriSavedImage = Uri.fromFile(image);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
//launch camera app with result code (forResult)
startActivityForResult(cameraIntent, 1);
protected void onActivityResult (int requestCode, int resultCode, Intent data)
{
if (requestCode == 1 && resultCode == RESULT_OK)
{
//create bitmap with image
Bitmap bMap = BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory() +
"/Myfolder/" + "Pic" + num + ".png");
//Add bitmap to ImageView
//Show on screen
imageView.setImageBitmap(bMap);
}
To use different name for image everytime you can use method getTimeInMillis() as Calendar mCalendar = Calendar.getInstance(); String n = ""+mCalendar.getTimeInMillis(); String fname = "Pic-" + n.substring(5) + ".png"; //Asign name for image File image = new File(imagesFolder, fname); Uri uriSavedImage = Uri.fromFile(image);
要每次为图像使用不同的名称,可以使用方法getTimeInMillis()作为
Calendar mCalendar = Calendar.getInstance(); String n = ""+mCalendar.getTimeInMillis(); String fname = "Pic-" + n.substring(5) + ".png"; //Asign name for image File image = new File(imagesFolder, fname); Uri uriSavedImage = Uri.fromFile(image);
Calendar mCalendar = Calendar.getInstance(); String n = ""+mCalendar.getTimeInMillis(); String fname = "Pic-" + n.substring(5) + ".png"; //Asign name for image File image = new File(imagesFolder, fname); Uri uriSavedImage = Uri.fromFile(image);
try this code 试试这个代码
public class CameraActivity extends ActionBarActivity {
// private static final int ACTION_TAKE_IMAGE = 1;
Button btnImage;
ImageView imageView;
File image;
String picturePath;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
imageView = (ImageView) findViewById(R.id.imageView);
btnImage = (Button) findViewById(R.id.buttonCapture);
btnImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//Create folder
File imagesFolder = new File(
Environment.getExternalStorageDirectory(), "Vipul/image");
imagesFolder.mkdirs();
//Asign name for image
String fname = "Pic-" + System.currentTimeMillis() + ".png";
image= new File(imagesFolder, fname);
Uri uriSavedImage = Uri.fromFile(image);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
//launch camera app with result code (forResult)
startActivityForResult(cameraIntent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode == RESULT_OK) {
Bitmap bitmap;
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
picturePath=image.getAbsolutePath();
bitmap = BitmapFactory.decodeFile(image.getAbsolutePath(), bitmapOptions);
imageView.setImageBitmap(bitmap);
}
}
}
final solution 最终解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.