Android从相机拍摄后上传多张图片
创始人
2024-10-06 21:01:39
0

要实现Android从相机拍摄后上传多张图片,可以按照以下步骤进行操作:

  1. 首先,在AndroidManifest.xml文件中添加相机和存储权限。


  1. 创建一个拍照的Activity,在该Activity中处理拍照逻辑。
public class CameraActivity extends AppCompatActivity {

    private static final int REQUEST_IMAGE_CAPTURE = 1;
    private List imageUris = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);

        Button takePhotoButton = findViewById(R.id.btn_take_photo);
        takePhotoButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dispatchTakePictureIntent();
            }
        });

        Button uploadButton = findViewById(R.id.btn_upload);
        uploadButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uploadImages();
            }
        });
    }

    private void dispatchTakePictureIntent() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            File photoFile = null;
            try {
                photoFile = createImageFile();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            if (photoFile != null) {
                Uri photoUri = FileProvider.getUriForFile(this, "com.example.android.fileprovider", photoFile);
                imageUris.add(photoUri);
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
                startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
            }
        }
    }

    private File createImageFile() throws IOException {
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
        String imageFileName = "JPEG_" + timeStamp + "_";
        File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
        File image = File.createTempFile(imageFileName, ".jpg", storageDir);
        return image;
    }

    private void uploadImages() {
        // 在这里实现上传多张图片的逻辑
        // 可以遍历imageUris,并将每张图片上传到服务器
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            // 拍照成功后,可以在这里处理拍照后的操作,例如显示预览图等
        }
    }
}
  1. 在AndroidManifest.xml文件中注册FileProvider,用于获取拍照后的图片URI。

    ...
    
        
    

  1. 创建res/xml/file_paths.xml文件,并定义FileProvider的路径。

    

  1. 在MainActivity中启动拍照Activity。
public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_CAMERA = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button cameraButton = findViewById(R.id.btn_camera);
        cameraButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent cameraIntent = new Intent(MainActivity.this, CameraActivity.class);
                startActivityForResult(cameraIntent, REQUEST_CAMERA);
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == REQUEST_CAMERA && resultCode == RESULT_OK) {
            // 拍照成功后的处理逻辑
        }
    }
}

以上就是一个简单的实现Android从相机拍摄后上传多张图片的示例代码。你可以根据自己的需求进行修改和扩展。

相关内容

热门资讯

技术分享!fishpoker透... 技术分享!fishpoker透视底牌,wepoker科技辅助器,玩家教程(有挂技巧)这是由厦门游乐互...
总算了解!wpk俱乐部辅助器,... 总算了解!wpk俱乐部辅助器,拱趴大菠萝挂,必赢方法(有挂教程);原来确实真的有挂(需添加指定薇13...
重大通报!wepoker免费脚... 重大通报!wepoker免费脚本咨询,hhpoker有作弊的吗,AI教程(有挂技巧);亲真的是有正版...
我来教教你!购买wepoker... 我来教教你!购买wepoker模拟器,aapoker如何设置胜率,AI教程(有挂教程)科技教程也叫必...
揭秘攻略!wepoker底牌透... 揭秘攻略!wepoker底牌透视,拱趴大菠萝挂怎么安装,微扑克教程(有挂透视)是一款可以让一直输的玩...
技术分享!wepoker辅助插... 技术分享!wepoker辅助插件功能,hhpoker到底可以作弊码,存在挂教程(有挂神器);最新版2...
一分钟揭秘!hhpkoer辅助... 一分钟揭秘!hhpkoer辅助挂是真的吗,wpk模拟器,详细教程(有挂透明);支持多人共享记分板与复...
指导大家!poker辅助器免费... 指导大家!poker辅助器免费安装,wepoker钻石怎么看底牌,切实教程(有挂攻略)1、点击下载安...
一分钟了解!hhpoker辅助... 一分钟了解!hhpoker辅助器,hh poker透视器下载,实用技巧(有挂攻略);《WPK辅助透视...
玩家亲测!aapoker免费透... 1、玩家亲测!aapoker免费透视脚本,wepoker有没有挂,曝光教程(有挂技巧)。2、aapo...