[英]Select image from gallery and show in imageview
I need Open my gallery in mobile phone and select one picture which opened in imageview on activity.. nothing hard.. but I have code and thise code in simulator (genymotion) run perfect.. but on real phone Xiaomi Mi4 nothing.我需要在手机中打开我的图库并选择一张在活动中在 imageview 中打开的图片..没什么难的..但我有代码并且模拟器(genymotion)中的代码运行完美..但在真机小米Mi4上什么都没有。
Open gallery select item and nothing.打开图库选择项目,什么也没有。
I haven't have more phones :(我没有更多的电话:(
I try download some examples with this theme and every it's the same.. galery open when I select item app doing nothing.我尝试下载一些具有此主题的示例,并且每个示例都是相同的。
Have you some project with select image from gallery and show in imageview?你有一些从图库中选择图像并在 imageview 中显示的项目吗? if yes please share your code and upload me somewhere .apk for try, because I .. :( :'(如果是,请分享您的代码并将我上传到某处 .apk 以供尝试,因为我 .. :( :'(
my gradle我的毕业
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'
Thanks.谢谢。
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;
}
//////update //////更新
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é");
}
///////////////////////edit 2 ///////////////////////编辑2
I find error with firebase crashed..我发现 firebase 崩溃的错误..
Yhen I confirm photo app crashed..我确认照片应用程序崩溃了..
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 : please credit the developer when using their library ImagePicker :请在使用他们的库时感谢开发人员
In your if statement inside of onActivityResult
change requestCode
to requestCode & 0xffff
.在onActivityResult
内部的 if 语句中,将requestCode
更改为requestCode & 0xffff
。
What many people don't notice here is that the requestCode
that is coming back is coming back as a hex number not as a digit number.许多人在这里没有注意到的是,返回的requestCode
是作为十六进制数而不是数字数返回的。
In your AndroidManifest.xml
add these permissions:在您的AndroidManifest.xml
添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
Use this method to pick up images:使用此方法拾取图像:
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);
}
}
Then use this to receive them:然后使用它来接收它们:
@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
}
}
Did you try this?你试过这个吗?
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);
}
}
}
put this code inside (anything which you use to go to gallery)把这个代码放在里面(你用来去画廊的任何东西)
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
Then call this function然后调用这个函数
@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);
}
}
don't forget this permission to be called不要忘记调用这个权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.