2016-03-24 5 views
0

In meiner Tätigkeit habe ich ein ImageView. Ich möchte, wenn Benutzer darauf klicken, öffnet sich ein Dialog (wie Absichtsdialoge), der eine Liste von Apps anzeigt, die ein Bild öffnen können, als der Benutzer eine App auswählen und das Bild mit dieser App anzeigen kann.Android: Zeichnet ausziehbare Ressource mit anderen Anwendungen

meine Aktivitätscode:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    ImageView iv = (ImageView) findViewById(R.id.imageid); 
    iv.setImageResource(R.drawable.dish); 
    iv.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        //here is where I want a dialog that I mentioned show 
       } 
    }); 
}// end onCreate() 

Antwort

2

Sie nicht ein Bitmap auf eine Absicht passieren kann.

Von dem, was ich sehe, möchten Sie ein Zeichen aus Ihren Ressourcen teilen. Zuerst müssen Sie das Zeichen in eine Bitmap umwandeln. Und dann müssen Sie die Bitmap in den externen Speicher als Datei speichern und dann eine uri für diese Datei mit Uri.fromFile (neue Datei (pathToTheSavedPicture)) und übergeben Sie diese uri auf die Absicht wie folgt.

shareDrawable(this, R.drawable.dish, "myfilename"); 

public void shareDrawable(Context context,int resourceId,String fileName) { 
    try { 
     //convert drawable resource to bitmap 
     Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId); 

     //save bitmap to app cache folder 
     File outputFile = new File(context.getCacheDir(), fileName + ".png"); 
     FileOutputStream outPutStream = new FileOutputStream(outputFile); 
     bitmap.compress(CompressFormat.PNG, 100, outPutStream); 
     outPutStream.flush(); 
     outPutStream.close(); 
     outputFile.setReadable(true, false); 

     //share file 
     Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
     shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(outputFile)); 
     shareIntent.setType("image/png"); 
     context.startActivity(shareIntent); 
    } 
    catch (Exception e) { Toast.makeText(context, "error", Toast.LENGTH_LONG).show(); 
    } 
} 
-1

Sie müssen startActivity Absicht des Typs mit Intent.ACTION_VIEW -

  Intent intent = new Intent(); 
      intent.setAction(Intent.ACTION_VIEW); 
      intent.setDataAndType(<your_image_uri>, "image/*"); 
      startActivity(intent); 
-1
Create a chooser by using the following code. You can add it in the part where you say imageview.setonclicklistener(). 
Intent intent = new Intent(); 
// Show only images, no videos or anything else 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
// Always show the chooser (if there are multiple options available) 
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1);