2016-12-08 1 views
0

私は、デフォルトのギャラリーアプリケーションを使用して、私のImageViewののリソースを開くための良い方法のために周りを見回しているが、空が出ています。今私はもはや良い方法を探していませんが、ちょうど期間を働かせる方法です。私はAndroidの最新のAPIを使用しています。私はStackやその他のリソースで利用可能なさまざまなソリューションを試しました。私は基本的にクリックしたときに私のスライドショー(基本的にはImageViewの)の現在の画像を開くためにそれを使用してギャラリーアプリケーションのパンとズーム機能を便乗しようとしています。私は、私もnull値が動作するように見えたが返された場合に実行するからコードを防ぐために、リゾルバを設定しようとしたなど.setData、.setDataAndType、いくつかの異なるURIの解析方法、インテントフィルタを使用して試してみました。これは私が、何かが正しく解決していないと信じていますか?ここに私のコードがあります:AndroidのデフォルトギャラリーアプリケーションでImageViewリソースを開くにはどうすればいいですか?

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); 
} 

イメージ[現在]はInteger型で、現在のイメージのリソース値をスライドショーに返します。例:R.drawable.myImage1

注:com.mypackagenameはちょうど検閲です。元のコードに実際のパッケージ名があります。

エラー:

java.lang.IllegalStateException:java.lang.reflect.Method.invokeでにjava.lang.reflect.InvocationTargetException :活性によって引き起こさ

の方法を実行できませんでしたandroid.content.ActivityNotFoundException:によって引き起こさjava.lang.reflect.Method.invokeで(ネイティブメソッド) (Method.java:372)

全く活性は、インテント{行為= android.intent.actionを処理するために見つかりませんでした。ビューのdat = android.resour CE:AndroidのデフォルトのギャラリーのアプリケーションとImageViewのリソースを開く方法//com.mypackagename/2130837662 TYP =画像/ *}

答えて

2

Androidデバイスモデルの何千ものです。これらのデバイスモデルには、何百もの「デフォルトギャラリーアプリケーション」実装が配布されています。単一の「デフォルトのギャラリーアプリケーション」はなく、あなたのコードは「ギャラリーアプリケーション」とほとんど関係ありません。

私は基本的にパンとズームをサポートするために、コンテンツとして画像を受け入れるすべてのACTION_VIEW活動のための要件はありませんギャラリーアプリケーション

のパンとズーム機能を便乗しようとしています。パンとズームが必要な場合は、ライブラリを使用します。

これは、おそらく何かが正しく解決していないと思われることを指摘していますか?

android.resourceスキームをサポートしているアプリはほとんどありません。

サードパーティ製のアプリにリソースを提供するためのあなたの最善の解決策は、ContentProviderを使用することです。これはmy StreamProviderであり、リソースを「すぐに」提供するためのサポートを提供します。または、独自のContentProvider実装でもかまいません。

+0

自分のContentProviderをイメージデータ用にロールし、ACTION_VIEWインテントを送信してください。それ以上のことはありませんが、受信アプリケーションはあなたが望むように見えないかもしれません。 –

+0

助けてくれてありがとう! Androidアプリを初めて作成しました。私はJavaとAndroidライブラリを学んでいます。私はそれに行くと私が思い付くことができます参照してください。 –

関連する問題