android - 从相机拍摄图像后图像附加选项不出现

标签 android

friend ,点击按钮我打开相机拍照,我拍照成功,现在点击图片后只有两个选项,“保存”和“丢弃”,没有任何附加相机点击图像的选项那么如何在下一个 View 中附加图像和显示图像呢?

我的代码是...

       public void function2(int id){



               Intent cameraIntent = new   Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

                              startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

        }


         public void onActivityResult(int requestCode, int resultCode, Intent data) {

             if (requestCode == CAMERA_PIC_REQUEST||requestCode == SELECT_PICTURE) {
                try{
                    try{
                      selectedImageUri = data.getData();

                    //OI FILE Manager
                   String  filemanagerstring = selectedImageUri.getPath();

                    //MEDIA GALLERY
                   selectedImagePath = getPath(selectedImageUri);

                    //DEBUG PURPOSE - you can delete this if you want
                    if(selectedImagePath!=null){

                         Intent i=new Intent(MainMenu.this,Imageprview.class);
                          startActivity(i);
                          System.out.println(selectedImagePath);
                    }

                    else
                        System.out.println("selectedImagePath is null");
                    if(filemanagerstring!=null)
                        System.out.println(filemanagerstring);
                    else System.out.println("filemanagerstring is null");

                    //NOW WE HAVE OUR WANTED STRING
                    if(selectedImagePath!=null)
                        System.out.println("selectedImagePath is the right one for you!");
                    else
                        System.out.println("filemanagerstring is the right one for you!");
                }catch (NullPointerException e) {
                    // TODO: handle exception
                }          }catch (ArrayIndexOutOfBoundsException e) {
                    // TODO: handle exception
                }     }
        }

        //UPDATED!
        public String getPath(Uri uri) {
            String[] projection = {MediaStore.Images.Media.DATA };
            Cursor cursor = managedQuery(uri, projection, null, null, null);
            if(cursor!=null)
            {
                //HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
                //THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
                int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                return cursor.getString(column_index);
            }
            else return null;
        }

最佳答案

Button btnCam=(Button)findViewById(R.id.camBtn); 
            btnCam.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) { 
                    // Intent detailActivity = new Intent(getBaseContext(),com.rodasys.profile.detailProfile.class);
                     //startActivity(detailActivity);

                    saveImage();


                } });    







     }

     public void saveImage()
     {

         try {

             FileOutputStream fos = openFileOutput("MyFile.jpeg", Context.MODE_WORLD_WRITEABLE);
             fos.close();
             File f = new File(getFilesDir() + File.separator + "MyFile.jpeg");

             Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
             intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
             intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION,90);
             startActivityForResult(intent,IMAGE_CAPTURE);
             //startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE).putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)),IMAGE_CAPTURE);

             }
             catch(IOException e) {

             }

    }

     @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == 0) {
                if (resultCode == RESULT_OK){

                    finish();
                    //imageView=(ImageView)findViewById(R.id.imageView1);
                    //imageView.setImageURI(imageUri);
                    Intent detActivity = new Intent(getBaseContext(),com.rodasys.profile.detailProfile.class);
                    startActivity(detActivity);
                    //Log.d("ANDRO_CAMERA","Picture taken!!!");
                    //
                }
            }
        }

详细介绍 Activity

公共(public)类 detailProfile 扩展 Activity{

String fname=new File(getFilesDir(),"MyFile.jpeg").getAbsolutePath();

//使用此文件路径您可以在此 Activity 中加载图像

您还有另一个选择,您可以在创建新 Intent 时通过 Intent 传递图像,之后您可以通过新 Intent 中的 Bundle 对象访问该图像。

bytes[] imgs = ...//你的图片 Intent intent = new Intent(this, YourActivity.class); intent.putExtra("img", imgs); 启动 Activity ( Intent )

详细简介

bytes[] receiver = getIntent().getExtra("imgs");

//使用字节数组你可以在你的 ImageView 中显示你的图像

关于android - 从相机拍摄图像后图像附加选项不出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7567328/

相关文章:

android - @NonNull 注释在 Android Studio 中不起作用

android onTrimMemory 和 ComponentCallbacks2

android - 方向更改使我的应用程序崩溃

java - 单个微调器上的多个 onItemSelected 监听器

android - 在android中滑动一个按钮?

android - 如何将 Guava 库的**某些**部分导入Android应用程序(gradle)

android - 从自定义 View 类中的属性中按 ID 获取 View

android - 将图像和文本存储在一种数据类型android中

android - 空指针异常 getSystemService

java - Android 两个网络同时操作