Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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
Java Android Studio:如何将外部文件(来自相机的照片)设置为imageview_Java_Android_Xml - Fatal编程技术网

Java Android Studio:如何将外部文件(来自相机的照片)设置为imageview

Java Android Studio:如何将外部文件(来自相机的照片)设置为imageview,java,android,xml,Java,Android,Xml,在确定如何将imageview设置为我刚用相机拍摄的图片时遇到了一些问题。如果有一种方法可以同时显示多张拍摄的照片,那将是一个额外的收获。每当我点击按钮时,就会出现一张先前拍摄的图像,然后相机就会打开,这是不对的。我希望imageview为空,我单击按钮,拍摄一张照片,然后该照片显示在imageview中。我认为这条线不合适,但我不确定如何/在哪里移动它mimageView.setImageURI(outputFileUri) 我认为这条线不合适,但我不确定如何/在哪里移动它 startActi

在确定如何将imageview设置为我刚用相机拍摄的图片时遇到了一些问题。如果有一种方法可以同时显示多张拍摄的照片,那将是一个额外的收获。每当我点击按钮时,就会出现一张先前拍摄的图像,然后相机就会打开,这是不对的。我希望imageview为空,我单击按钮,拍摄一张照片,然后该照片显示在imageview中。我认为这条线不合适,但我不确定如何/在哪里移动它<代码>mimageView.setImageURI(outputFileUri)

我认为这条线不合适,但我不确定如何/在哪里移动它

startActivityForResult()
是异步的。在该方法返回时,您的照片将不会被拍摄。如果得到
结果\u OK
响应,则需要将图像加载到
onActivityResult()中的
图像视图中


然而,虽然
setImageURI()
可能有效,但这从来不是一个特别好的主意,因为它会在加载照片时冻结你的应用程序一段时间。有很多方法可以异步加载您的
ImageView

谢谢!对不起,我以前从未使用过库,因为这是一个我们都在与github合作的小组项目,其他人是否需要下载我使用的任何库?或者通过在我的代码中实现它,它将是自动的。@FrankMascia:“其他人需要下载我使用的任何库吗?或者通过在我的代码中实现它,它将是自动的”——两者都有。几乎可以保证您已经在使用库了。在模块的
build.gradle
文件(例如
app/build.gradle
)中查找单词
依赖项。其中的
compile
语句表示您正在使用的库。添加库通常只是添加另一个
compile
语句。
public class cameraclass extends Activity {
    int TAKE_PHOTO_CODE = 0;
    public static int count = 0;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.camera);
        final ImageView mimageView;
        mimageView = (ImageView) this.findViewById(R.id.image_from_camera);




        // Here, we are making a folder named picFolder to store
        // pics taken by the camera using this application.
        final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/picFolder/";
        File newdir = new File(dir);
        newdir.mkdirs();

        Button capture = (Button) findViewById(R.id.take_image_from_camera);
        capture.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {

                // Here, the counter will be incremented each time, and the
                // picture taken by camera will be stored as 1.jpg,2.jpg
                // and likewise.
                count++;
                String file = dir+count+".jpg";
                File newfile = new File(file);
                try {
                    newfile.createNewFile();
                }
                catch (IOException e)
                {
                }

                //Uri outputFileUri = Uri.fromFile(newfile);
                Uri outputFileUri = FileProvider.getUriForFile(getApplicationContext() , "com.example.android.com220finalapp.provider", newfile);

                Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

                startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
                mimageView.setImageURI(outputFileUri);

            }
        });
    }

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

        if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
            Log.d("CameraDemo", "Pic saved");

        }
    }
}