我已经四处寻找使用默认的Gallery应用程序打开我的ImageView资源的好方法,但是空白了。现在我不再寻找一个好方法,而只是一种可以工作的方式。我正在使用Android的最新API,我在Stack和其他资源上尝试了许多不同的可能解决方案。我基本上试图通过使用它来点击我的幻灯片(基本上是一个ImageView)的当前图像来搭载图库应用程序的平移和缩放功能。我已经尝试使用.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 at java.lang.reflect.Method.invoke(Native Method) 在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 / *}
答案 0 :(得分:2)
如何使用Android的默认图库应用程序打开ImageView资源?
有数以千计的Android设备型号。有数百个"默认的图库应用程序"分布在这些设备模型上的实现。没有单一的"默认图库应用程序",您的代码与"图库应用程序"没什么关系。
我基本上是在尝试搭建Gallery应用程序的平移和缩放功能
不要求所有接受图像作为内容的ACTION_VIEW
活动支持平移和缩放。如果您想要平移和缩放,请使用库。
这让我相信也许有些东西没有正确解决?
很少有应用程序支持android.resource
计划。
向第三方应用提供资源的最佳解决方案是使用ContentProvider
。这可能是my StreamProvider
,它为服务资源提供了一些支持"开箱即用"。或者,它可能是您自己的ContentProvider
实施。