从galery中选择图像并在imageview中显示

对不起写,但我有一个大问题..

我6个小时寻找结果但是..没有:(

我需要在手机中打开我的galery并选择在imageview上打开活动的一张图片..没有什么难…但我有代码和模拟器(genymotion)中的代码运行完美..但在真正的手机小米Mi4什么都没有。

打开galery选择项目,什么也没有。

我没有更多的手机:(

我尝试下载这个主题的一些例子,每一个都是一样的…当我选择项目应用程序什么都不做时,galery打开..

请问你有类似的问题吗?

你有一些项目与galery选择图像和imageview显示? 如果是的话请分享你的代码并上传我的地方.apk试试,因为我…… :(:’(

我的朋友

apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "24.0.2" defaultConfig { applicationId "paradox.galopshop" minSdkVersion 19 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' compile 'com.android.support:appcompat-v7:23.2.1' compile 'com.android.support:design:23.2.1' compile 'com.squareup.picasso:picasso:2.5.2' }) //Add library // loaderimage compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support:design:25.2.0' compile 'com.google.firebase:firebase-database:10.2.0' compile 'com.android.support.test.espresso:espresso-core:2.2.2' compile 'com.google.firebase:firebase-storage:10.2.0' compile 'com.google.firebase:firebase-auth:10.2.0' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' compile 'com.google.firebase:firebase-crash:10.2.0' testCompile 'junit:junit:4.12' } apply plugin: 'com.google.gms.google-services' 

谢谢。

 Intent i = new Intent(); i.setType("image/*"); i.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(i, "Select Picture"),SELECT_PICTURE ); protected void onActivityResult(int requestCode, int resultCode, Intent data){ if(resultCode==RESULT_OK){ if(requestCode==SELECT_PICTURE){ Uri selectedImageUri = data.getData(); if (null != selectedImageUri) { // Get the path from the Uri String path = getPathFromURI(selectedImageUri); Log.i("IMAGE PATH TAG", "Image Path : " + path); // Set the image in ImageView ImageView imageView=(ImageView)findViewById(R.id.imageView2); imageView.setImageURI(selectedImageUri); TextView tw=(TextView)findViewById(R.id.addimage); tw.setText("Načítané"); } } } } private String getPathFromURI(Uri contentUri) { String res = null; String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null); if (cursor!=null) { if (cursor.moveToFirst()) { int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); res = cursor.getString(column_index); } cursor.close(); } else { Toast.makeText(this, "Cursor null" + proj, Toast.LENGTH_SHORT).show(); } return res; } 

//////更新

 protected void onImageViewClick(){ // ImageView imageView=(ImageView)findViewById(R.id.imageView2); TextView tw=(TextView)findViewById(R.id.addimage); tw.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImagePicker imgpicker= new ImagePicker(); imgpicker.getPickImageIntent(getApplicationContext()); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ Bitmap bitmap = ImagePicker.getBitmapFromResult(this, resultCode, data); if (null != bitmap && resultCode == RESULT_OK) { ImageView imageView=(ImageView)findViewById(R.id.imageView2); imageView.setImageBitmap(bitmap); TextView tw=(TextView)findViewById(R.id.addimage); tw.setText("Načítané"); } 

///////////////////////编辑2

我发现firebase崩溃的错误..

我确认照片应用程序崩溃了..

 arrow_drop_down Exception java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=4, result=-1, data=Intent { act=inline-data (has extras) }} to activity {paradox.galopshop/paradox.galopshop.All}: java.lang.NullPointerException: uri android.app.ActivityThread.deliverResults (ActivityThread.java) android.app.ActivityThread.handleSendResult (ActivityThread.java) android.app.ActivityThread.access$1400 (ActivityThread.java) android.app.ActivityThread$H.handleMessage (ActivityThread.java) android.os.Handler.dispatchMessage (Handler.java) android.os.Looper.loop (Looper.java) android.app.ActivityThread.main (ActivityThread.java) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java) com.android.internal.os.ZygoteInit.main (ZygoteInit.java) arrow_drop_down Caused by java.lang.NullPointerException: uri com.android.internal.util.Preconditions.checkNotNull (Preconditions.java) android.content.ContentResolver.openAssetFileDescriptor (ContentResolver.java) android.content.ContentResolver.openAssetFileDescriptor (ContentResolver.java) paradox.galopshop.ImagePicker.decodeBitmap (ImagePicker.java:116) paradox.galopshop.ImagePicker.getImageResized (ImagePicker.java:139) paradox.galopshop.ImagePicker.getBitmapFromResult (ImagePicker.java:103) paradox.galopshop.All.onActivityResult (All.java:363) android.app.Activity.dispatchActivityResult (Activity.java) android.app.ActivityThread.deliverResults (ActivityThread.java) android.app.ActivityThread.handleSendResult (ActivityThread.java) android.app.ActivityThread.access$1400 (ActivityThread.java) android.app.ActivityThread$H.handleMessage (ActivityThread.java) android.os.Handler.dispatchMessage (Handler.java) android.os.Looper.loop (Looper.java) android.app.ActivityThread.main (ActivityThread.java) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java) com.android.internal.os.ZygoteInit.main (ZygoteInit.java) 

ImagePicker :请在使用他们的库时向开发人员表示感谢

onActivityResult内部的if语句中,将requestCode更改为requestCode & 0xffff

许多人在这里没有注意到的是,返回的requestCode将作为hex数而不是数字号返回。

AndroidManifest.xml添加以下权限:

      

使用此方法拾取图像:

 protected void onImageViewClick(){ // ImageView imageView=(ImageView)findViewById(R.id.imageView2); TextView tw=(TextView)findViewById(R.id.addimage); tw.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { selectImage(); } }); } private void selectImage() { Intent takeImageIntent = ImagePicker.getPickImageIntent(this); if (takeImageIntent.resolveActivity(getActivity().getPackageManager()) != null) { startActivityForResult(takeImageIntent, REQUEST_IMAGE_CAPTURE); } } 

然后使用它来接收它们:

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Bitmap bitmap = ImagePicker.getBitmapFromResult(this, resultCode, data); if (null != bitmap && resultCode == RESULT_OK) { //do what you want with the bitmap here } } 

你试过这个吗?

 public void onActivityResult( ....) { If ( resultCode == RESULT_OK) { Uri selectedImg = data.getData(); Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver, selectedImg); If(bitmap != null) { yourImageView.setImageBitmap(bitmap); } } } 

将此代码放入(您用于进入图库的任何内容)

 Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST); 

然后调用此函数

 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { Uri filePath = data.getData(); Bitmap img=MediaStore.Images.Media.getBitmap(getContentResolver, filePath); If(img!= null) { image.setImageBitmap(img); } } 

不要忘记这个被调用的权限