2017-02-14 3 views
0

私はローカルストレージのドロアブルをキャッシュとして保存し、Share_Intentを読み込みますか?

public Integer[] mThumbIds = { 
     R.drawable.ic_bl1, 
     R.drawable.ic_bl2, 
     R.drawable.ic_bl3, 
     R.drawable.ic_bl4, 
     R.drawable.ic_bl5, 
     R.drawable.ic_ca1, 
     R.drawable.ic_ca2, 
     R.drawable.ic_ch} 

は私が後でそれらを取得できるようにアンドロイド(ないSDカード)のローカルストレージ上のTempフォルダにそれらをすべて保存したい私は別々のリソース配列として宣言している私のプロジェクトでドローアブルを持っていますそして、共有する意思のコードが

Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
      sharingIntent.setType("image/*"); 
      sharingIntent.putExtra(Intent.EXTRA_STREAM, path); 
     // sharingIntent.setPackage("com.facebook.orca"); 
      sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      Intent chooserIntent = Intent.createChooser(sharingIntent, "Send Via"); 
      chooserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      sContext.startActivity(chooserIntent); 
     // sContext.startActivity(sharingIntent); 

     } 
    }); 

を完了している私が送信される特定のファイルのURIを渡す必要があり、それを取得するための最良の方法は、ローカルストレージに保存した画像を介して行われ、共有intent.Iを経由してそれらを送信し、そこでUriを取得します。単一のイメージをキャッシュに保存してから取得する方法はわかっています。

ローカルストレージ上の特定のフォルダにドロワーブルのリストを保存し、後で共有目的で使用するためにUrisを取得する方法を理解できません。

+0

あなたはあなたが得ることができる最悪のアドバイスです 'SharedPreferences' –

+0

で' BASE64'形式で画像を保存することができます。 – greenapps

答えて

0

このコードを使用できます。 ただし、読み取りと書き込みのストレージアクセス権を追加してください。

public void onClick(View view) { 
    Intent shareIntent = new Intent(); 
    shareIntent.setAction(Intent.ACTION_SEND); 
    shareIntent.setType("image/png"); 
    ImageView imageView = (ImageView) view; 

    Drawable mDrawable = imageView.getDrawable(); 
    Bitmap mBitmap = ((BitmapDrawable) mDrawable).getBitmap(); 

    String path = MediaStore.Images.Media.insertImage(mContext.getContentResolver(), mBitmap, "Image Description", null); 
    Uri uri = Uri.parse(path); 
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
    startActivity(Intent.createChooser(shareIntent, "Share Content!!")); 

} 
+0

恐ろしい!私がshareIntent.setActionを使用すると自動的に選択されるメッセンジャーのような現在開いているアプリケーションを得ることはできますか? Intent.ACTION_SEND)? – enemy123

+0

特定のfacebookやwhatsappなどのソーシャルメディアアプリはありますが、コンポーネントを設定してパッケージ名を調べる必要があります。それは間違いなくあなたを助ける!幸運の最高:) –

関連する問題