【发布时间】:2017-04-23 21:41:17
【问题描述】:
我四处寻找一种使用默认图库应用程序打开 ImageView 资源的好方法,但结果是空的。现在我不再寻找一种好方法,而只是一种可行的方法。我正在使用 Android 的最新 API,并且尝试了 Stack 和其他资源上可用的许多不同的可能解决方案。我基本上是在尝试通过单击时打开我的幻灯片的当前图像(基本上是 ImageView)来搭载 Gallery 应用程序的平移和缩放功能。我尝试过使用 .setData、.setDataAndType、几种不同的 URI 解析方法、意图过滤器等。我什至尝试设置一个解析器,以防止在返回似乎有效的空值时执行代码。这使我相信也许某些事情没有正确解决?这是我的代码:
public void onImageClicked(View view) {
Intent intent = new Intent();
intent.setAction(ACTION_VIEW);
Uri imgUri = Uri.parse("android.resource://com.mypackagename/" + images[current]);
intent.setDataAndType(imgUri, "image/*");
startActivity(intent);
}
images[current] 是 Integer 类型,返回幻灯片中当前图像的资源值。例如:R.drawable.myImage1
注意:com.mypackagename 只是一个审查员。我的原始代码中有实际的包名。
错误:
java.lang.IllegalStateException: 无法执行活动的方法
引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372)
原因:android.content.ActivityNotFoundException:找不到处理 Intent 的 Activity { act=android.intent.action.VIEW dat=android.resource://com.mypackagename/2130837662 typ=image/* }
【问题讨论】:
标签: android android-intent imageview gallery